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

Linux中关于cp命令详解_第1张图片


cp 拷贝并重命名   案例

 

# 查看目录结构

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

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

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

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

1 directory, 3 files
 

Linux中关于cp命令详解_第2张图片


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

Linux中关于cp命令详解_第3张图片


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

Linux中关于cp命令详解_第4张图片


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
覆盖后

Linux中关于cp命令详解_第5张图片

遗留的问题

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


你可能感兴趣的:(Linux基础学习,linux)