Linux cp指令
Linux cp(英文全拼: copy file)命令主要用于复制文件或目录。
语法:
cp [options] source dest
或者
cp [options] source... dest
参数说明:
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:与-f相反,覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
实例:
cp -r /source-dirname/. /target-dirname
# 用/.表示该目录下所有文件,包括隐藏文件
(base) qry@qry-MacBook-Pro Desktop % mkdir test && cd test
(base) qry@qry-MacBook-Pro test % mkdir A B C
(base) qry@qry-MacBook-Pro test % cd A
(base) qry@qry-MacBook-Pro A % touch a.txt b.md .cfile
(base) qry@qry-MacBook-Pro A % ls -a # 显示当前目录下所有文件,包括隐藏文件
. .. .cfile a.txt b.md
(base) qry@qry-MacBook-Pro A % cp ./* ../B # 复制当前目录下所有非隐藏文件到上一级中的B文件夹
(base) qry@qry-MacBook-Pro A % ls -a ../B
. .. a.txt b.md
(base) qry@qry-MacBook-Pro A % rm ../B/*
zsh: sure you want to delete all 2 files in /Users/qry/Desktop/test/A/../B [yn]? y
(base) qry@qry-MacBook-Pro A % cp -r ./. ../C # 复制当前目录下所有文件到上一级中的C文件夹
(base) qry@qry-MacBook-Pro A % ls -a ../C
. .. .cfile a.txt b.md
(base) qry@qry-MacBook-Pro A % rm ../C/.*
(base) qry@qry-MacBook-Pro A % ls -a ../C
. .. a.txt b.md
(base) qry@qry-MacBook-Pro A % rm ../C/*
zsh: sure you want to delete all 2 files in /Users/qry/Desktop/test/A/../C [yn]? y
(base) qry@qry-MacBook-Pro A %
参考文献: