
ディスク間で大量のファイルをコピーしています。データは約 16 GB あります。進行状況情報や完了予定時間も確認したいです。コマンドラインから。
何かアドバイス?
答え1
使用rsync --human-readable --progress
。
単一ファイルとブロックデバイスの場合は もありますpv
。また、正確な進行状況バーが本当に必要な場合は、tar
次のように pv と一緒に を使用してください。
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; }
ただし、GNU はまだ ACL や拡張属性をサポートしていないので、"acl" または "xattrs" オプションでマウントされたファイルシステムをコピーする場合は、rsync (" " および " " オプションtar
付き) を使用する必要があります。個人的には、次のものを使用しています。--acls
--xattrs
rsync --archive --inplace --hard-links --acls --xattrs --devices --specials \
--one-file-system --8-bit-output --human-readable --progress /source /target
--delete
また、および/またはオプションを使用するかどうかも検討してください--numeric-ids
。
答え2
代わりにdd
私は提案しますpv
例:
% tar -cf - INPUT | pv -rbe -s SIZE | tar -xf - -C DEST
答え3
を試しましたかrsync -P
? を使用している場合dd
、たとえば、tar -cf - src | dd | (cd dest; tar -xf -)
Ctrl-T (SIGINFO) を使用して進行状況を確認できるはずです。