Linux-cp命令常用选项
cp 命令是 Linux 中一个重要的命令,你可能经常会用到它。正如名称所示,cp 代表 复制(copy),它被用于在 Linux 命令行中复制文件和目录。
语法格式
mv [选项] 源文件或目录 目标文件或目录
mv [options] source destination
选项说明
-b #当目标文件存在时,覆盖之前创建一个备份
-f #如果移动的文件或目录与目标重复,则直接覆盖(无需确认)
-i #交互式操作,覆盖前会提示用户进行确认操作,用户通过输入Y/N来确认是否覆盖
-u #若目标文件已存在,且与需移动的文件同名,只有在源文件比目标文件较新时,才会更新目标文件
-t #指定mv的目标目录,此选项使用于移动多个文件到一个目录的情况,目标文件在前,源文件在后。
-S<后缀>:#为备份文件指定(自定义的)后缀
-n #不覆盖任何现有文件
-T #将目标当作普通文件,而不是目录
-v #详细输出命令的执行过程信息
1.复制单个文件
cp 命令最简单和最常见的用途是复制文件,只需指定源文件和要“粘贴”文件的目标目录即可。
cp 源文件 目标目录
将单个文件从源目录复制到目标目录。
2.在复制文件的同时重命名它
你将文件复制到另一个位置时可以同时进行重命名。这有点类似于文本编辑器中的“另存为”选项。
为此,你必须在路径中给出新的文件名。
cp 源文件 目标目录/新文件名
在复制文件的同时重命名。
3.复制多个文件
你还可以将多个文件复制到另一个位置。
cp 文件1 文件2 文件3 目标目录
复制多个文件时,将目标目录放在最后。
在这种情况下,你无法重命名文件。
你还可以使用通配符扩展,将特定后缀的文件复制到另一个位置:
cp *.txt 目标目录
使用通配符扩展复制多个文件,比如所有 .txt 后缀的文件
4.复制文件时避免覆盖现有文件
如果你将 file1.txt 复制到一个已经存在名为 file1.txt 文件的目录中,它会将原有的文件覆盖掉。
如果你不希望这样,cp 命令还提供了几个选项来处理文件覆盖的情况。
首先是使用选项 -i 的交互模式。在交互模式下,它会询问是否确认或放弃覆盖目标文件。
cp -i 源文件 目标目录
cp:覆盖 '目标目录/源文件' ?
按 Y 覆盖文件,按 N 跳过复制该文件。
选项 -n 代表完全取消覆盖。使用此选项时目标文件不会被覆盖。
cp -n 源文件 目标目录
取消覆盖(目录内文件的内容未更改)
还有一个选项 -b,在目标目录的文件将被覆盖时自动为其创建备份。我猜这里 b 代表 备份(backup)。
cp -b 源文件 目标目录
覆盖文件,但在备份文件后附加了“~”。
最后,还有一个“更新(update)”选项 -u,如果目标文件比源文件旧,或者目标文件不存在,就会被覆盖掉。
cp -u 源文件 目标目录
新文件会覆盖旧文件。
5.复制目录(文件夹)
cp 命令也用来在 Linux 命令行中复制目录。
在复制目录时,你需要使用递归选项 -r。
cp -r 源目录 目标目录
在 Linux 中使用 cp 命令复制整个目录
你还可以将多个目录复制到另一个位置:
cp -r 目录1 目录2 目录3 目标目录
使用 cp 命令复制多个目录
6.在复制时保留属性
当你将文件复制到另一个位置时,它的时间戳、文件权限甚至所有权都会发生变化。
这是正常的行为。但在某些情况下,你可能希望在复制文件时保留其原始属性。
要保留属性,请使用选项 -p:
cp -p 源文件 目标目录
还有一个 -a 选项用于存档模式。它将连 ACL 也保留下来。
本文来自博客园,作者:业余砖家,转载请注明原文链接:https://www.cnblogs.com/yeyuzhuanjia/p/17849949.html