1. Linux cp简介
Linux上最常用的命令之一,用于复制文件。支持文件复制、复制后重命名、建立软链接、建立硬链接、递归复制子目录等功能。
2. 使用例子1:cp结合相当路径
把当前目录上的cp1.txt,复制到上一级目录
[[email protected]]# cp cp1.txt ../
3. 使用例子2:复制一个文件到指定目录
把/etc/passwd这个文件复制到/var/tmp/,新文件的绝对路径为/var/tmp/passwd
[[email protected]]# cp /etc/passwd /var/tmp/
4. 使用例子3:复制并另存为新的文件名
把cp1.txt复制一份,重命名为cp2.txt,源文件和目标文件都在当前目录。
[[email protected]]# cp cp1.txt cp2.txt
复制/root/zip/目录里所有以txt后缀结尾的文件复制到当前目录:
5. 使用例子4:复制指定路径里的文件和目录,并递归复制指定目录里的层层子目录
把/etc/目前里的所以内容复制一份到当前用户家目录,~表示当前用户家目录
[[email protected]]# cp -r /etc/ ~
检查:
[[email protected]]# ll ~
drwxr-xr-x. 73 root root 8192 Oct 10 21:32 etc
可以看到用户家目录确认有一个新的目录etc
[[email protected]]# du -sh ~/etc/
34M /root/etc/
使用du命令看到目标目录/root/etc的大小为34M
[[email protected]]# du -sh /etc/
34M /etc/
源目录/etc/的大小也等于34M
表明复制成功,因为源和目标是一样大小。
6. 使用例子5:交互式确认复制加-i选项
把当前目录的所有.txt后缀文件复制到上一级目录
[[email protected]]# cp -i *.txt ../
执行时,需要输入y或者yes确认:
[[email protected]]# cp -i *.txt ../
cp: overwrite ‘../cp1.txt’? y
cp: overwrite ‘../cp2.txt’? y
7. 使用例子6:复制时,强制覆盖旧文件,不需要提示,包括递归子目录和传递属性
[[email protected]]# \cp -r -a 源目录路径/* /目标目录路径
比如/etc/里的所有目录和文件复制一份到/root/,复制之前/root中已经有了etc的内容,现在再次覆盖。
[[email protected]]# \cp -r -a /etc/* /root/
8. cp命令的常用选项
-a:此参数的效果和同时指定”-dpR”参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-i:交互式复制文件,每个文件都要询问一次,可以输入n或者y进行选择复制或者不复制;
-l:对源文件建立硬连接,实际上不复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,复制指定目录里面的层层子目录和对应的文件;
-s:对源文件建立软连接,实际上不复制文件;
-u:复制时比较源文件与目标文件的更改时间,如果源比目标新,则进行复制。或者目标不存在同名时,也会进行复制。
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:备份已存在的目标文件后再进行覆盖;
-v:显示执行情况的详细信息。
总结:cp命令其实有很多复杂的功能可以满足用户日常使用的需求。