|
藍森林 http://www.lslnet.com 2006年8月18日 15:18
在linux下面怎麼拷貝一個目錄,使得裡面的文件屬性保持原樣
例如要拷貝a目錄,a目錄裡面有a1,a2文件,他們的modify時間是pm1.00
我想拷貝到b目錄,使得a1,a2文件的modify時間不給改變
謝謝 |
這個問題在精華區關於cp或者ln命令時好像有確切的方法吧,具體方法偶也記不清了,可以查查看:) |
-p
[biosedit@debian:12:28:02~#1]%cp --help
用法:cp [選項]... 來源 目的地
或:cp [選項]... 來源... 目錄
或:cp [選項]... --target-directory=目錄 來源...
將<來源>文件複製至<目的地>,或將多個<文件>複製至<目錄>。
長選項必須用的參數在使用短選項時也是必須的。
-a, --archive 等於 -dpR
--backup[=CONTROL] 為每個已存在的目的地文件創建備份文件
-b 類似 --backup,但不接受任何參數
--copy-contents 當使用遞歸模式時複製特殊文件的內容
-d 等於 --no-dereference --preserve=link
--no-dereference 不會找出符號鏈接指示的真正目的地
-f, --force 如果無法打開已存在的文件,會刪除該文件並再
嘗試打開
-i, --interactive 覆蓋文件前需要確認
-H 使用命令列中的符號鏈接指示的真正目的地
-l, --link 鏈接而非複製文件
-L, --dereference 一定先找出符號鏈接指示的真正目的地
-p 等於 --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST] 若可能,保留指定的文件屬性
(默認值為:mode,ownership,timestamps)
額外的屬性有:links、all
--sno-preserve=ATTR_LIST 不保留指定的文件屬性
--parents 複製前先在<目錄>創建來源文件路徑中的所有目錄
-P 等於『--no-dereference』
-R, -r, --recursive 複製目錄及目錄內的所有項目
--remove-destination 嘗試打開目的地文件前先刪除已存在的目的地
文件 (與 --force 選項作對比)
--reply={yes,no,query} 指定如何處理已存在的目的地文件
--sparse=WHEN 控制創建 sparse 文件的方式
--strip-trailing-slashes 刪除參數中所有<來源>文件/目錄末端的斜槓
-s, --symbolic-link 只創建符號鏈接而不是複製文件
-S, --suffix=後綴 自行指定備份文件的<後綴>
--target-directory=目錄 將所有參數指定的<來源>文件/目錄複製至<目錄>
-u, --update 只在<來源>文件比目的地文件新,或目的地文件
不存在時才進行複製
-v, --verbose 詳細顯示進行的步驟
-x, --one-file-system 不會跨越文件系統進行操作
--help 顯示此幫助信息並離開
--version 顯示版本信息並離開
默認使用模式中,<來源>文件是否 sparse 文件會由一種粗略的方式決定,而且相應
的<目的地>文件也會是 sparse 文件。此方式等於使用 --sparse=auto 選項。指定
--sparse=always 則只要<來源>文件含有足夠長的 0 字節都會產生 sparse 的
|
或者可先把目錄 tar 起來, 再 unzip 它到其他目錄. |
cp -p |
:mrgreen::mrgreen::mrgreen::(
flood:wink: |
謝謝大家發言。
要是用cp命令的話,如果裡面有一個ln -s aa bb的話,
上面link的時間是會被改變的。最好能用find cpio的 |
加一個 l 參數是好了,
可是還是比較想要 find .... cpio ....的。 |
使用 tar 也可以的 |
| |