pvコマンドを用いた進捗表示についてです。 複数ディレクトリのアーカイブをまとめて取る際、 pvコマンドとzip -rの併用がうまくいかず困っています。 現在、
pvコマンドを用いた進捗表示についてです。 複数ディレクトリのアーカイブをまとめて取る際、 pvコマンドとzip -rの併用がうまくいかず困っています。 現在、 > zip -r 生成するzipファイル名 zip化するディレクトリ名 という形でアーカイブを取っています。 しかし、ファイルが1000近くあり、それらがいちいち表示されるのは煩わしく、 進捗状況もわからないため、pvコマンドを導入することにしました。 そこで、 > pv ディレクトリ名 | zip zipファイル名 > pv ディレクトリ名 | zip -r zipファイル名 > zip zipファイル名 | pv ディレクトリ名 > zip -r zipファイル名 | pv ディレクトリ名 などの形で試しているのですが、 いずれもディレクトリをpvに入力することができないようで、エラーになってしまいます。 pvコマンドにディレクトリを入力し、進捗を確認しながらディレクトリごとzip化するにはどうすればよいのでしょうか。 環境は、 conohaのレンタルサーバー上のCentOS streamです。 よろしくお願いします。
ベストアンサー
後はforかxargsで回すか。 zip -qr - フォルダ名 | pv -bep -s $(du -bs フォルダ名) | awk '{print $1}') > ZIPファイル名
()の対応がわからず、 $ zip -qr ディレクトリ名 | pv -bep -s $(du -bs ディレクトリ名) | awk '{print $1}' > zipファイル名 とすると、 pv: ディレクトリ名: read failed: Is a directory pv: failed to read file: 299328452: No such file or directory と出力され、ファイル名通りの空のZipファイルが生成 $ zip -qr ディレクトリ名 | pv -bep -s $(du -bs ディレクトリ名 | awk '{print $1}') > zipファイル名 とすると、 pv: failed to read file: 299328453: No such file or directory 標準出力のみ バーは表示されませんでした。
質問者からのお礼コメント
遅くなり申し訳ございません。 試行錯誤を繰り返した末、 for i in $(ls -d world*/ | cut -f1) do eval zip -qru - $i | pv -bep -s $(du -bs $i | awk '{print $1}') > $BK_NAME # done
お礼日時:6/24 11:32