1つのファイルを複数のディレクトリにコピーしたい〜UNIXコマンド:xargsとcpについて〜
1つのファイルを複数のディレクトリにコピーしたい
dir1, dir2, dir3にfileをコピーしてばらまきたい。
結論
echo dir1 dir2 dir3 | xargs -n 1 cp -v file
読み解いてみる
xargs
とは
標準出力をコマンドライン引数に変えるコマンド。
今回の例で言えば、echoによって出力される標準出力を、
コマンドライン引数としてcpに渡している。
-nオプションとは
数字をすこしいじってみた。
$ echo dir1 dir2 dir3 | xargs -n 1 dir1 dir2 dir3
$ echo dir1 dir2 dir3 | xargs -n 2 dir1 dir2 dir3
$ echo dir1 dir2 dir3 | xargs -n 3 dir1 dir2 dir3
なるほど。
引数をいくつづつ渡すかを指定するコマンドなのね。
cpとは
概要
ファイルをコピーするコマンド。
-vオプションとは
オプション有り。
$ cp -v fileA fileB flieA -> fileB
オプション無し。
$ cp -v fileA fileB
何も言わねえ。
まとめ
xargs、
コマンドライン引数しかうけとらないコマンドに、
標準出力をわたしたい時に活躍するみたい。
面白いな。
unixコマンドは1つ1つの機能が小さいので、汎用性が高い。
組み合わせて使って楽しい。
いろいろ覚えていこう。