文件/目錄的複製
複製文件
cp file1 file2 file3 dir1/
複製目錄
複製目錄,必須帶有 -r/-R/–recursive 選項
cp -r dir1/ dir2/
複製目錄項
如果只想複製目錄的內容,而不包括目錄本身,需要使用通配符
cp -r dir1/*.txt dir2/
副本重命名
如果想發生目標文件/目錄的重命名,那麼目標文件/目錄必須不存在。
副本文件重命名
cp file1 dir1/renamed_file1
副本目錄重命名
cp -r dir1/ dir2/renamed_dir1
文件覆蓋
如果副本文件在目標目錄中已經存在,那麼就會發生文件內容覆蓋。
- -n 選項不會發生文件內容覆蓋。
- -i 提示是否覆蓋。
- --backup 對即將被覆蓋的文件進行備份。
- 當被複制的文件比較新是,使用 -u 纔會發生文件內容覆蓋。
備份文件
--backup 選項指定備份的格式,有如下值
- simple/never : 備份後綴名爲波浪符(~),這也是默認方式。
- numbered/t : 備份後綴爲數字,例如 ~1~。
- existing/nil : 如果已經存在使用數字備份的文件,那麼就使用數字後綴,否則使用波浪符後綴。
文件的自我備份
cp 文件不允許文件的自我備份
$ cp --backup file1 file1
cp: 'file1' and 'file1' are the same file
但是加上 -f/--force 選項可以改變這個情況
$ cp -fv --backup file1 file1
'file1' -> 'file1~'
$
$ ls -l
total 8
-rw-rw-r-- 1 umi umi 6 1月 10 16:11 file1
-rw-rw-r-- 1 umi umi 6 1月 10 16:17 file1~
這個小技巧通常出現在Bash shell腳本中。