GNU cp およびGNU mv ツールは、GNU/Linuxオペレーティングシステムでファイルとディレクトリをコピーおよび移動するために使用されます。これら2つのユーティリティに欠けている機能の1つは、プログレスバーが表示されないことです。大きなファイルやディレクトリをコピーする場合、コピープロセスが完了するまでにかかる時間や、コピーされるデータの割合は実際にはわかりません。現在コピーされているファイルや、すでにコピーされているファイルの数は表示されません。表示されるのは、点滅するカーソルとハードドライブのLEDインジケータだけです。 アドバンストコピーに感謝します 、Gnu Coreutilsのパッチ 、cpにプログレスバーを追加できるようになりました およびmv Linuxでコマンドを実行し、大きなファイルやディレクトリをコピーおよび/または移動するときにプログレスバーを表示します。
Advanced Copyは、GNU cpのmodです。 およびGNU mv プログラム。プログレスバーを追加し、ファイルやフォルダーをコピーまたは移動するときに何が起こっているかについての情報を提供します。プログレスバーだけでなく、データ転送速度、推定残り時間、現在コピー中のファイル名も表示されます。最後に、コピーされるファイルの数とファイルのコピーにかかった時間に関する簡単な要約が表示されます。
「アドバンストコピー」パッチをインストールして、Linuxのcpおよびmvコマンドにプログレスバーを追加します
cpおよびmvコマンドは、GNU coreutilsの一部です。 。したがって、最新のGNU coreutilsをダウンロードする必要があります ここから 。
$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz 次のコマンドを使用して、ダウンロードしたアーカイブを抽出します:
$ tar xvJf coreutils-8.32.tar.xz
このコマンドは、coreutils-8.32という名前のフォルダーにcoreutilsアーカイブを抽出します 現在のディレクトリにあります。 Cd into it:
$ cd coreutils-8.32/ 次のコマンドを使用して、AdvancedCopyパッチをダウンロードします。
$ wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch 最後に、次のコマンドを1つずつ実行してパッチを適用します。
$ patch -p1 -i advcpmv-0.8-8.32.patch $ ./configure $ make
ここで、2つの新しいパッチが適用されたバイナリ、つまりcp およびmv coreutils-8.32/srcに作成されます フォルダ。以下のように$PATHにコピーするだけです:
$ sudo cp src/cp /usr/local/bin/cp $ sudo cp src/mv /usr/local/bin/mv
それでおしまい。 cp およびmv コマンドにプログレスバー機能が追加されました。
ファイルやディレクトリのコピーまたは移動中にプログレスバーが必要な場合は、-gを追加するだけです。 以下のようなフラグ:
$ cp -g archlinux.iso mydownload/
または、--progress-barを使用します フラグ:
$ cp --progress-bar archlinux.iso mydownload/ 出力例:
Copying at 25.7 MiB/s (about 0h 0m 1s remaining)
archlinux.iso 568.1 MiB / 646.0 MiB
[=========================================================================> ] 87.9 %
コピープロセスの最後に、コピーされたファイルの数、ファイルのコピーにかかった時間、および1秒あたりのデータ転送速度が表示されます。いいですね。
1 files (646.0 MiB) copied in 11.8 seconds ( 54.7 MiB/s).
ディレクトリとそのサブディレクトリを再帰的にコピーするには、-Rを追加するだけです。 フラグ:
$ cp -gR directory1/ directory2/
同様に、mvを使用してファイルを移動するには コマンド、実行:
$ mv -g archlinux.iso mydownload/
または、--progress-barを使用します フラグ:
$ mv --progress-bar archlinux.iso mydownload/
mvでディレクトリを移動するには コマンド、使用:
$ mv -g directory1/ directory2/
エイリアスを作成して、いくつかのキーストロークを保存することもできます。これを行うには、~/.bashrcを編集します ファイル:
$ nano ~/.bashrc 最後に次の行を追加します:
alias cp='/usr/local/bin/cp -gR'
alias mv='/usr/local/bin/mv -g'
Ctrl+oを押します およびCtl+x ファイルを保存して閉じます。
次に、次のコマンドを実行して変更を有効にします。
$ source ~/.bashrc
これからは、cpを使用できます またはmv -gのないコマンド (または--progress-bar )フラグ。
元のプログラムは上書きされないことに注意してください。 /usr/bin/cpからいつでも呼び出すことができます または/usr/bin/mv 。
cpにプログレスバー機能を追加する およびmv 大量の大きなファイルやディレクトリを頻繁にコピーまたは移動する場合は、コマンドを使用することをお勧めします。画面を見つめる代わりに、ファイルのコピーと移動中に何が起こっているかを正確に確認できるようになりました。
注:
元の作成者は、GNUCoreUtilsを維持するチームにパッチを送信しました。 mvとcpは機能が完全であるため、このパッチはマージされません。