我們正在將主文件夾遷移到新的文件系統,我正在尋找一種使用Perl或shell腳本來自動化它的方法。我沒有太多的編程語言選擇,因爲系統是專有存儲集羣,應儘可能保持不變。如何用Perl或shell非遞歸地遷移目錄?
任務:在目錄下/ home /我有各種用戶的主文件夾aaa,bbb,ccc,...並且它們具有某些權限和用戶/組的所有權,在遷移到/ newhome /時需要保持原樣。這裏的例子,需要從/家庭遷移的內容:
drwxr-xr-x 3 aaaaa xxxxxxxxx 4096 Feb 26 2008 aaaaa/
drwxrwxrwx 88 bbbbbbb yyyyyy 8192 Dec 16 16:32 bbbbbbb/
drwxr-xr-x 6 ccccc yyyyyy 4096 Nov 24 04:38 ccccc/
drwxr-xrwx 36 dddddd yyyyyy 4096 Jun 20 2008 dddddd/
drwxr-xr-x 27 eee yyyyyy 4096 Dec 16 02:56 eee/
因此,處理權限和所有權完全相同的文件夾應該在/ newhome上創建的。複製/移動文件不應該成爲問題,因爲它將在稍後處理。
任何人都曾在這樣的腳本?我對Perl真的很陌生,所以我需要幫助。
很棒的1班輪,謝謝!有沒有辦法告訴cp不要複製每個用戶目錄的子文件夾和文件?換句話說,只需在/ home下創建頂級用戶目錄而不需要複製內容。 – 2008-12-22 21:03:09
@DV:手冊頁狀態cp -a等同於cp -dpr ...因爲-r處理遞歸,所以cp -dp應該做你想要的而不遞歸的。 – 2008-12-22 21:29:06
Adam,如果未指定-r,cp會省略目錄,因此-dp只適用於AFAIK文件。 – codelogic 2008-12-22 21:31:06