每天進步一點點 linux cp

2021-12-29 20:46:06 字數 4185 閱讀 2423

cp命令用來複製檔案或者目錄,是linux系統中最常用的命令之一。一般情況下,shell會設定乙個別名,在命令列下複製檔案時,如果目標檔案已經存在,就會詢問是否覆蓋,不管你是否使用-i引數。但是如果是在shell指令碼中執行cp時,沒有-i引數時不會詢問是否覆蓋。

[root@nagios ~]# alias

alias cp='cp -i'

cp [選項]... [-t] 源 目的

或:cp [選項]... 源... 目錄

或:cp [選項]... -t 目錄 源...

-a, --archive 等於-dr--preserve=all

--backup[=control 為每個已存在的目標檔案建立備份

-i,--interactive 覆蓋前詢問(使前面的 -n 選項失效)

-l,--link 鏈結檔案而不複製

-l,--dereference 總是跟隨符號鏈結

-n,--no-clobber 不要覆蓋已存在的檔案(使前面的 -i 選項失效)

-r,-r, --recursive 遞迴複製目錄及其子目錄內的所有內容

-a, --archive 等於-dr --preserve=all

--backup[=control 為每個已存在的目標檔案建立備份

-b 類似--backup 但不接受引數

--copy-contents 在遞迴處理是複製特殊檔案內容

-d 等於--no-dereference--preserve=links

-f,--force 如果目標檔案無法開啟則將其移除並重試(當 -n 選項

存在時則不需再選此項)

-i,--interactive 覆蓋前詢問(使前面的 -n 選項失效)

-h 跟隨原始檔中的命令列符號鏈結

-l,--link 鏈結檔案而不複製

-l,--dereference 總是跟隨符號鏈結

-n,--no-clobber 不要覆蓋已存在的檔案(使前面的 -i 選項失效)

-p,--no-dereference 不跟隨原始檔中的符號鏈結

-p 等於--preserve=模式,所有權,時間戳

--preserve[=屬性列表 保持指定的屬性(預設:模式,所有權,時間戳),如果

可能保持附加屬性:環境、鏈結、xattr 等

-c sameas --preserve=context

--sno-preserve=屬性列表 不保留指定的檔案屬性

--parents 複製前在目標目錄建立**檔案路徑中的所有目錄

-r,-r, --recursive 遞迴複製目錄及其子目錄內的所有內容

--reflink[=when] 控制轉殖/cow 副本。請檢視下面的內如。

--remove-destination 嘗試開啟目標檔案前先刪除已存在的目的地

檔案 (相對於 --force 選項)

--sparse=when 控制建立稀疏檔案的方式

--strip-trailing-slashes 刪除引數中所有原始檔/目錄末端的斜槓

-s,--symbolic-link 只建立符號鏈結而不複製檔案

-s,--suffix=字尾 自行指定備份檔案的字尾

-t, --target-directory=目錄 將所有引數指定的原始檔/目錄

複製至目標目錄

-t,--no-target-directory 將目標目錄視作普通檔案

-u,--update copy only whenthe source file is newer

than thedestination file or when the

destination file is missing

-v,--verbose explain what isbeing done

-x,--one-file-system stay on thisfile system

-z,--context=context set securitycontext of copy to context

--help 顯示此幫助資訊並退出

--version 顯示版本資訊並退出

[bzfys@nagiost1]$ tree

├── t2

├── t3

│?? └── t2

└── t4

[bzfys@nagios t1]$ cp t4 ./t3/

[bzfys@nagiost1]$ tree

├── t2

├── t3

│?? ├── t2

│?? └── t4

└── t4

[root@nagiost1]# ll

總用量 8

drwxrwxr-x 2 bzfys bzfys 4096 6月 18 09:16 t2

drwxrwxr-x 3 bzfys bzfys 4096 6月 18 09:18 t3

-rw-rw-r-- 1 bzfys bzfys 0 6月 18 09:17 t4

[root@nagiost1]# cp t4 t3/

cp:是否覆蓋"t3/t4"? y

[root@nagiost1]# ll t3/

總用量 4

drwxrwxr-x 2 bzfys bzfys 4096 6月 18 09:16 t2

-rw-rw-r-- 1 bzfys bzfys 0 6月 18 09:22 t4

[root@nagiost1]# cp -p t4 t3/

cp:是否覆蓋"t3/t4"? y

[root@nagiost1]# ll t3/

總用量 4

drwxrwxr-x 2 bzfys bzfys 4096 6月 18 09:16 t2

-rw-rw-r-- 1 bzfys bzfys 0 6月 18 09:17 t4

不難看出,如果有-p引數拷貝的檔案時間戳等屬性也不會變

[root@nagiost1]# cp t3 t5

cp: 略過目錄"t3"

[root@nagiost1]# cp -a t3 t5

[root@nagiost1]# tree

├── t2

├── t3

│?? ├── t2

│?? └── t4

├── t4

└── t5

├── t2

└── t4

5 directories, 3 files

可以看出如果要複製目錄需要-a或者-r引數(-r引數後面演示)

[root@nagiost1]# cp t3 t6/

cp: 略過目錄"t3

[root@nagiost1]# cp -r t3 t6

[root@nagiost1]# tree

├── t2

├── t3

│?? ├── t2

│?? └── t4

├── t4

├── t5

│?? ├── t2

│?? └── t4

└── t6

└── t3

├── t2

└── t4

8 directories, 4 files

[root@nagiost1]# cp -r t3/ t6/

cp:是否覆蓋"t6/t3/t4"? y

[root@nagiost1]# tree

├── t2

├── t3

│?? ├── t2

│?? └── t4

├── t4

├── t5

│?? ├── t2

│?? └── t4

└── t6

└── t3

├── t2

└── t

我們可以看出,加不加/最後的結果是一樣的

每天進步一點點

很多朋友總喜歡問 成功靠什麼?其實,成功很難單一的歸納為靠什麼條件,如果一定要回答,只能從某種意義上說 很多人的成功就是靠他們每天比別人 多做一點點 正如古人有云 業精於勤,荒於嬉。這裡所說的勤,也就是比別人多做一點點,即付出多一點的勞動和努力。不要小看這一點點,又如古語說 集腋成裘,積沙成丘。如果...

每天進步一點點

在模組化程式設計時,在子模組中宣告變數 例如unsigned char aa 不需要在標頭檔案中宣告 要在主函式中呼叫,要寫成 extern unsigned char aa 而不能寫成 extern aa 寫成extern aa 則無法改變aa的值。2014年9月22日 21 12 00 品質因數...

每天進步一點點(一)

最近接了第乙個商業專案,一人獨立完成從前台到後台,做了有幾天的時間,每天進步一點點,把每天看到的學到的記錄下來,以後也堅持。後台繼續用自己的extjs老本行,因為相比其他js庫,extjs用的比較熟,現成的 也有所以開發起來也比較容易,今天學到了兩個ext的新東西。一 ext和後台進行互動大部分用的...