Linux cp命令

文件/目錄的複製

複製文件

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

文件覆蓋

如果副本文件在目標目錄中已經存在,那麼就會發生文件內容覆蓋。

  1. -n 選項不會發生文件內容覆蓋。
  2. -i 提示是否覆蓋。
  3. --backup 對即將被覆蓋的文件進行備份。
  4. 當被複制的文件比較新是,使用 -u 纔會發生文件內容覆蓋。

備份文件

--backup 選項指定備份的格式,有如下值

  1. simple/never : 備份後綴名爲波浪符(~),這也是默認方式。
  2. numbered/t : 備份後綴爲數字,例如 ~1~。
  3. 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腳本中。

發佈了50 篇原創文章 · 獲贊 31 · 訪問量 400萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章