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は機能が完全であるため、このパッチはマージされません。