Linux

使用 cp 將每 10 個文件從源文件複製到目標目錄

  • May 11, 2019

我在一個目錄中有 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 findxargscp,這將一次複製 10 個文件:

d="destination_directory..."
s="source_directory..."
find "$s" -type f -print0 | xargs -0rn 10 cp -n -t "$d"

引用自:https://unix.stackexchange.com/questions/518328