Linuxでより大きなファイルまたはフォルダーをコピーまたは移動する場合は、ジョブの進行状況を知りたい場合があります。デフォルトのコピー(cp)および移動(mv)コマンドには、プログレスバー機能はありません。したがって、ファイルをコピーまたは移動している間は、要求された操作が完了するまでコマンドがハングしているのがわかります。今日は、デフォルトのcpコマンドとmvコマンドを置き換えてプログレスバー機能を追加する、Linuxの高度なコピーコマンドを紹介します。
免責事項:Advanced Copyコマンドは、既存のcpおよびmvコマンドを置き換えますが、デフォルトコマンドのすべての機能を引き続き備えています。安全を確保するために、これらのコマンドのバックアップを取る必要があります。
ステップ1: AdvancedCopyコマンドをダウンロードしてコンパイルします。そのためには、coreutilsも必要になります。
$ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.21.tar.xz $ tar xvJf coreutils-8.21.tar.xz $ cd coreutils-8.21/ $ wget http://zwicke.org/web/advcopy/advcpmv-0.5-8.21.patch $ patch -p1 -i advcpmv-0.5-8.21.patch $ ./configure $ make
注:Core-Utilsは、Linux上の既存のコアファイルに機能を追加するための便利なパッケージです。ただし、Linuxのコアファイルを置き換える可能性のあるバイナリが含まれているため、注意が必要です。意図したことだけを置き換えてください。
coreutils-8.21.tar.xzを解凍する方法がわからない場合。次に、このガイドを読んで、tarコマンドを使用して解凍します。
ステップ2: makeが成功したら、「src」ディレクトリの下にある「cp」コマンドと「mv」コマンドをコピーして置き換える必要があります。
$ ls -l src/cp $ ls -l src/mv
ステップ3: デフォルトの「cp」および「mv」コマンドを新しいコマンドに置き換えます。
$ cp src/cp /bin/cp $ cp src/mv /bin/mv
ステップ4: 以下のコマンドを実行して、ファイルのコピーまたは移動中に進行状況バーを表示します。
$ cp -gR gcc32.tar /tmp/
注:オプション「R」は再帰用であり、-gは進行状況バーを表示します。
$ mv -g gcc32.tar /tmp/
エイリアスを(〜/ .bashrcで)設定して、プログレスバーをデフォルトで以下のように表示することができます
alias cp='cp -gR' alias mv='mv -g'
注:変更をすぐに読み取るには、〜/ .bashrcをソースする必要があります。そうしないと、次のセッションから有効になります。
静的バイナリからアドバンストコピーコマンドをインストールするにはどうすればよいですか?
$ wget http://zwicke.org/web/advcopy/advcpmv-0.5-8.21-static.tar.xz $ tar xvJf advcpmv-0.5-8.21-static.tar.xz
抽出したら、デフォルトの「cp」コマンドと「mv」コマンドをコピーして置き換えます。
$ cp advcpmv-0.5-8.21-static/cp /usr/local/bin/cp $ cp advcpmv-0.5-8.21-static/mv /usr/local/bin/mv
高度なコピーコマンドは非常に便利で、巨大なファイルをコピーまたは移動するときに便利です。