Linux中关于cp命令详解

cp的作用

cp命令主要用于复制文件和目录,也可以在复制过程中进行重命名


cp的参数

-a通常在复制目录时使用,复制目录下的所有内容(一般会保留链接、文件属性等)。
-d复制时保留链接。 (这里指的链接就是相当于windows上的快捷方式)
-r, --recursive

用于复制目录及其所有的子目录和文件。

-i, --interactive在复制前提示确认,如果目标文件已存在,就会询问是否覆盖,(这个参数不加也会默认加上)。
-l不复制文件,只是生成链接文件(类似于windows的快捷方式)
-f, --force表示强制复制,即使目标文件已存在也会覆盖,而且不给出提示
-v, --verbose显示详细的复制过程


cp的案例

cp 拷贝文件   案例

# 先创建一个"file"文件

touch file
# 再创建一个"demo"目录

mkdir demo
# 查看一下目录结构(文件和目录都存在)

tree
.
├── demo
└── file

1 directory, 1 file
# 使用"cp"命令将"file"文件拷贝到"demo"目录中

cp file demo/
# 再次查看一下目录结构,看是否拷贝成功

tree
.
├── demo
│   └── file
└── file

1 directory, 2 files


cp 拷贝并重命名   案例

 

# 查看目录结构

tree
.
├── demo
│   └── file
└── file

1 directory, 2 files
# 使用"cp" 命令并对目标文件进行改名

cp file demo/file02
# 再次查看目录结构,发现拷贝到"demo
"文件夹中并进行了重命名

tree
.
├── demo
│   ├── file
│   └── file02
└── file

1 directory, 3 files
 


cp -r   案例

# 先查看一下目录结构

tree
.
├── demo
│   └── file
└── file

1 directory, 2 files
# 再创建一个"demo02"目录

mkdir demo02
# 将"demo"目录拷贝到"demo02"目录中

cp demo demo02
cp: omitting directory ‘demo’

!!! 但是这里出现了错误,说你把这个目录当做了一个文件来执行的,忽略了目录中的文件了,这种情况情况下可以使用 "-r" 参数来递归复制
# 添加上"-r" 参数再次对"demo"目录拷贝到"demo02"目录中

cp -r demo demo02
# 再次查看目录结构看是是否拷贝成功

tree
.
├── demo
│   └── file
├── demo02
│   └── demo
│       └── file
└── file

3 directories, 3 files


cp -i  案例

# 先查看当前目录下的文件目录结构

tree
.
├── demo
│   └── file
└── file

1 directory, 2 files
# 拷贝"file"文件到"demo"目录中去

cp file demo/
cp: overwrite ‘demo/file’? y

!!! 这里出现了一个提示,问是否要覆盖"demo"目录中的文件,同时下面加上了 "-i" 跟这条的提示是一样的,这里就说明 cp = cp -i这两个不管使用那个都会出现提示。 
# 使用"-i" 参数进行拷贝

cp -i file demo
cp: overwrite ‘demo/file’? y


cp -f 案例

# 首先先查看当前目录下的"file"文件内容

cat file 
覆盖后
# 然后查看"demo"目录下的"file"的文件内容

cat demo/file
覆盖前
# 使用"cp -f" 的参数进行不提示强制覆盖

cp -f file demo/file
cp: overwrite ‘demo/file’? n

!!! 但是这里还是出现了意思,询问是否要覆盖,这里先选择n个否掉,显然出现了问题.

!##  而在这里出现这个原因可能是因为系统默认对shell设置了一个别名(alias),或者使用了某个特定版本的cp命令,所以我们直接选择使用"/usr/bin/cp"这个绝对路径来尝试一下。
# 使用了"/usr/bin/cp -f"  发现确实解决了这个问题没有出现提示

/usr/bin/cp -f file demo/file
# 最后查看一下内容看看是否是覆盖成功

cat demo/file
覆盖后

遗留的问题

cp的别名是怎么设置可以不再使用/usr/bin/cp命令


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值