cpコマンドでは「複数のファイルを1つのディレクトリに」コピーすることは簡単にできるのだが、「1つのファイルを複数のディレクトリに」コピーする場合はちょっと工夫が必要になる。 といっても基本的な方法で、xargsコマンドを使って複数ディレクトリを指定してcpコマンドを実行してやるだけだ。

xargs -n 1 cp -v file <<< "dir1 dir2 dir3" # ブレース展開が使えない
echo dir1 dir2 dir3 | xargs -n 1 cp -v file # ブレース展開が使える


cpやmvコマンドに『advcpmv』パッチを適用してプログレスバーによる進捗表示をさせる

以前にもこちらで触れたことがあるのだが、有志の作成した『advcpmv』というパッチをcp、mvファイルに適用することで、コマンド実行時にプログレスバーを表示させることができるようになる。
パッチは、以下の方法で当てることができる。

wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.21.tar.xz
tar xvJf coreutils-8.21.tar.xz
cd coreutils-8.21/
wget https://raw.githubusercontent.com/atdt/advcpmv/master/advcpmv...

cpやmv、tarコマンドの進捗状況を調べる方法といえばいくつかあるが、progressコマンドなるものを用いてバックで動いているcpやmvなどの進捗状況を確認することができるようだ。
以下、インストールコマンド。

rpm -ihv http://cbs.centos.org/kojifiles/packages/progress/0.13/1.el6/x86_64/progress-0.13-1.el6.x86_64.rpm # RHEL6系
rpm -ihv http://cbs.centos.org/kojifiles/packages/progress/0.13/1.el7/x...

cp/mvコマンドで、配置先に同名のファイルがあった場合のみリネームして配置させる

Windowsのエクスプローラーでコピーをすると、同名のファイルがあった場合には以下のような画面が表示される。
その時に表示される選択肢である「コピーするが両方のファイルを保持する」とほぼ同等の動作をLinuxのcp/mvコマンドで実現する場合、どうすればいいのだろう?

厳密な動作は少々異なるが、これらをcp/mvコマンドで実現する場合は「--backup」オプションを付与し、その際の動作を指定する事で実現可能だ。
例えば、連番の場合は以下のようにする。

cp --backup=t コピー元 コピー先
mv --backup=t 移動元 移動先

[root@test-c...

cpコマンドでディレクトリ構造を含めてコピーする

オプション無しだと、cpコマンドではディレクトリ構造ごと(サブディレクトリを含めた状態で)コピーすることはできない。
もしディレクトリ構造とセットでコピーしたい場合は、「--parents」オプションを利用すると良いだろう。

cp --parents コピー元ファイル コピー先PATH

[root@test-centos7 ~]# cp /work/aaaaa.txt /bkup
[root@test-cento...

cpコマンドで覚えておきたい使い方9個(+1個)

LinuxやUNIXを使う上で、ほぼ必ず利用するcpコマンド。
今回は、このcpコマンドで覚えておきたい使い方を9個紹介する。

1.基本的な使い方

今更言うまでもない気がするが、基本的なコマンドの実行方法は以下の通りだ。

cp コピー元ファイル コピー先PATH

2.ディレクトリごとコピーする

ファイル単位ではなくディレクトリごとコピーする場合は、「-r」オプションを付与する。

cp -r コピー元ディレクトリ コピー先ディレクトリ

3.複数のファイルを個別に指定してコピーする

複数のファイルを個別に指定してコピーする場合は、以下のようにコマンドを実行...


cpやdd実行時のファイルの読み取り・書き込み進捗を確認出来る『showspeed』

以前、cpやmvの進捗状況を確認出来る『cv』コマンドを紹介したが、今回はそれによく似たコマンド『showspeed』を紹介する。
cvコマンドとの違いは、『showspeed』はプロセスの読み取りと書き込みの速度を確認することが出来る点だ。

今回は、CentOS 7でこのコマンドをインストール、動作をさせてみる。

1.前提パッケージのインストール

まず、以下のコマンドで『showspeed』の前提パッケージをインストールする。

yum install libaio libaio-devel perl-Data-Dumper

2.『showspeed』のインストール

...
Linuxでファイルコピー時に進捗状況を確認する6つの方法

Linuxで普通にcpコマンドを利用していると、そのコピーの進捗状況がわからない事が多い。
コピーの進捗状況を調べるには、どうすればよいのだろうか?

1.cp実行時に「-v」オプションを用いる

正確な進捗状況(各ファイルごとに何%までコピーが完了したか)はわからないが、「どのファイルまではコピーが完了したか」を把握するのであれば、cpコマンドで「-v」オプションを利用することで、今どのファイルをコピーしているのかが把握出来る。

2.cvコマンドを利用する

以前こちらで紹介したcvコマンドを利用することで、マシン上で実行されているcp,mvの進捗状況を確認することが出来...


cp、mvの現在状況を確認出来る『cv』コマンド

いままで、パフォーマンスやネットワークのモニタリングコマンドについて扱ってきたが、今回はcpやmvプロセスのモニタリングコマンド『cv』について紹介する。
このコマンドは、OS上で実行されているcpやmvの実行状況(何%終了したか等)を確認することが出来る。

1.インストール

以下のコマンドを実行し、『cv』コマンドをインストールする。

git clone https://github.com/Xfennec/cv
cd cv
make
sudo make install

これでインストールできた。