Linux
使用 cp 將每 10 個文件從源文件複製到目標目錄
我在一個目錄中有 110 個大文件。但我無法立即複製它們,因為系統在 50 分鐘後超時。我想複製文件 1 到 10,下一個 11 到 20,下一個 21 到 30,依此類推。順序無關緊要。每次編寫
cp
一行命令時,我都想複製 10 個文件。我如何寫入cp
將文件編號 11 複製到 20(這不是頭部或尾部)?PS我的筆記本是macbook
文件名中有空格。
rsync -ai /path/to/source/directory/ /path/to/destination/directory
這用於
rsync
將所有文件從源目錄複製到目標目錄。如果複製中斷,您只需再次發出相同的命令即可重新啟動它。
-a
選項 ( ) 保留文件的--archive
元數據(所有者、權限、時間戳等)。這在後續執行中用於確定哪些文件需要傳輸,哪些文件不需要傳輸。
-i
選項 (--itemize-changes
) 導致rsync
輸出有關每次傳輸的資訊。在評論中,您提到您可能希望針對 AWS S3 儲存桶執行此操作。
在這種情況下,您可以使用
aws s3 sync /path/to/source/directory/ s3://bucket/path/to/destination/directory/
如果您的機器出於某種原因刪除了連接,這也可能是可重新啟動的。
也可以看看
注意:我不是 AWS 的使用者,所以我無法對此進行測試。
使用GNU
find
、xargs
和cp
,這將一次複製 10 個文件:d="destination_directory..." s="source_directory..." find "$s" -type f -print0 | xargs -0rn 10 cp -n -t "$d"