GNU/Linux >> Linux の 問題 >  >> Linux

高度なコピー–Linuxのcpおよびmvコマンドにプログレスバーを追加

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


Linux
  1. Linuxでシャットダウンおよび再起動コマンドを無効にする方法

  2. Linuxコマンド:jobs、bg、およびfg

  3. ツールボックスに追加する20個の1行のLinuxコマンド

  1. バックグラウンドおよびフォアグラウンドでのLinuxコマンドの実行

  2. 11 Linux で便利な「ssh」および「scp」コマンド

  3. 「ifconfig」コマンドと「ip」コマンドの違い

  1. Linuxコマンド-概要と例

  2. Linuxでコマンドをコピーおよび移動するためのプログレスバーを追加するにはどうすればよいですか?

  3. Linuxで検索および検索コマンドを使用してファイルを検索する