cp命令

-- TOC --

-a or --archive:这个参数包含了-r(同-R)和--preserve=all,还有-d,以archive的方式copy,文件所有的meta data都会保留,比如mtime等。

-d,same as --no-dereference --preserve=links,保留符号链接文件。

-r-R:recursive copy

-u--update:copy only when the SOURCE file is newer than the destination file or when the destination file is missing。更新copy,如果大量源头的文件都没有更新过,用这个参数能提高效率。

-v:verbose,在脚本中建议使用;

--parents:use full source file name under DIRECTORY,带路径copy,这里有点tricky:

$ cp --parents mychar7/mychar.c a/b
$ ll a/b/mychar7
total 24
drwxr-xr-x 2 xinlin xinlin  4096 2月  11 10:48 ./
drwxr-xr-x 3 xinlin xinlin  4096 2月  11 10:48 ../
-rw-r--r-- 1 xinlin xinlin 13081 2月  11 10:48 mychar.c

下面这个带路径copy的case,应该是个错误,..也被copy了:

$ cp --parents -v ../repos/pingscan/pingscan.py a/b
'../repos/pingscan/pingscan.py' -> 'a/b/../repos/pingscan/pingscan.py'
$ ll a
total 16
drwxr-xr-x 4 xinlin xinlin 4096 2月  11 10:48 ./
drwxrwxr-x 7 xinlin xinlin 4096 2月  11 10:47 ../
drwxr-xr-x 4 xinlin xinlin 4096 2月  11 10:49 b/
drwxr-xr-x 3 xinlin xinlin 4096 2月  11 10:48 repos/

本文链接:https://cs.pynote.net/sf/linux/shell/202208012/

-- EOF --

-- MORE --