Linux

使用 ETA 複製 Linux 文件?

  • April 11, 2016

我正在磁碟之間複製大量文件。大約有 16 GB 的數據。我想從命令行查看進度資訊,甚至是估計的完成時間。

有什麼建議嗎?

使用rsync --human-readable --progress.

對於單個文件和塊設備,還有pv. 如果你真的需要一個準確的進度條,試試用tarpv —— 像這樣:

source=/the/source/directory
target=/the/target/directory
size=$(du -sx "$source")
cd "$source"
find . xdev -depth -not -path ./lost+found -print0 \
   | tar --create --atime-preserve=system --null --files-from=- \
         --format=posix --no-recursion --sparse \
   | pv --size ${size}k \
   | { cd "$target"; \
       tar --extract --overwrite --preserve-permissions --sparse; }

但是請注意,GNUtar還不支持 ACL 或擴展屬性,因此如果您要複製使用“acl”或“xattrs”選項掛載的文件系統,則需要使用 rsync(帶有“ --acls”和“ --xattrs”選項)。就個人而言,我使用:

rsync --archive --inplace --hard-links --acls --xattrs --devices --specials \
   --one-file-system --8-bit-output --human-readable --progress /source /target

還要查看您是否要使用--deleteand/or--numeric-ids選項。

引用自:https://serverfault.com/questions/149793