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命令


  • 15
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 "cp -r" 命令来复制文件夹,"-r" 选项表示递归复制。例如,要将 "original_folder" 复制到 "new_folder",可以使用以下命令: ``` cp -r original_folder new_folder ``` 如果要在复制的同时名文件夹,可以在上面命令后面加上新的文件夹名,例如: ``` cp -r original_folder new_folder_new_name ``` 如果要在同一目录下名文件夹,可以使用 "mv" 命令,例如: ``` mv original_folder new_folder_new_name ``` ### 回答2: Linux是一种开源的操作系统,具有强大的功能和灵活的特性。在Linux,复制文件夹并名是一个非常常见的操作。下面就是如何在Linux系统复制文件夹并名的方法。 首先,我们需要打开Terminal(终端),然后使用如下的命令进行复制: cp -r folder1 folder2 其,-r是表示递归复制,即文件夹及其内部所有文件和子文件夹都会被复制;folder1表示源文件夹的名称;folder2表示目标文件夹的名称。如果需要在目标文件夹名,那么可以使用mv命令进行操作,具体方法如下: mv folder2 newFolder2 其,newFolder2是目标文件夹名后的名称。 总的来说,Linux系统复制文件夹并名非常简单和方便,只需要使用几个命令就可以轻松完成。不过,需要注意的是在使用命令时,需要仔细检查命令语法和参数,避免出现不必要的错误或者意外情况。 ### 回答3: 在Linux复制文件夹并名的方法有多种,下面介绍两种常用的方式。 方式一:使用cp命令复制并名 使用cp命令可以将一个文件夹复制到另一个位置,并可以为目标文件夹命名。 命令格式为: cp -r 原文件夹 目标文件夹 例如,将名为test1的文件夹复制到test2并名为test3,可以这样输入命令: cp -r test1 test2/test3 其,-r表示复制整个文件夹,test2/test3表示在test2文件夹下新建一个名为test3的文件夹,将test1复制到该文件夹。 方式二:使用rsync命令复制并名 rsync是Linux一个非常实用的文件同步工具,通过rsync命令可以快速、方便地进行文件夹的复制和同步。 命令格式为: rsync -av 原文件夹 目标文件夹 其,-a表示使用归档模式进行同步,-v表示显示详细信息。 例如,将名为test1的文件夹复制到test2并名为test3,可以这样输入命令: rsync -av test1/ test2/test3/ 其,test1/表示复制整个文件夹,test2/test3/表示在test2文件夹下新建一个名为test3的文件夹,将test1复制到该文件夹。 总之,在Linux复制文件夹并名有不同的方法,可根据具体情况选择适合自己的方式进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值