IT二刀流にはプロモーションが含まれています。

xargsでcpやmvを実行する

Linuxコマンド

ファイルが大量にある場合に使うxargs

引数が2つ以上必要な場合、cpやmvなどの方法

# ls | xargs -I % -t cp -r % /tmp

-I %の部分で指定した文字列に%を置換してくれる!

何気に便利。。

例えば、ディレクトリ内の.logだけtmpにコピー(cp)したい場合。

# ls -l
合計 16
-rw-r--r--. 1 root root    0  7月  5 13:43 1.log
-rw-r--r--. 1 root root    0  7月  5 13:43 2.log
-rw-r--r--. 1 root root    4  7月  5 13:38 a.txt
-rw-r--r--. 1 root root    4  7月  5 13:38 b.txt
-rw-r--r--. 1 root root    4  7月  5 13:39 c.txt
drwxr-xr-x. 2 root root 4096  7月  5 13:41 tmp

.logのファイルだけコピー

# ls | grep .log | xargs -I % -t cp % tmp/
cp 1.log tmp/
cp 2.log tmp/
# ls tmp/
1.log  2.log

これで.logのファイルをtmp/にコピーする。

「-I %」で%がにファイル名が入る。

「-t」オプションを付けるとコマンド実行前にコマンドを出力(cp 1.log tmp/)する。

# cp *.log tmp/

これで同じことができるんですけどね。

言いたいことは「-I」で任意の置換文字に標準入力より渡されたデータを入れることができるってこと。

いつか役に立つときが来ると思います。

ITエンジニアの転職

いまITエンジニアの需要は急拡大しています。
ITエンジニアの経験があれば好条件で転職することも難しくありません。

マイナビクリエイター

☆ 支援ご協力のお願い ☆

この記事が「役に立った」と感じたら

投げ銭の「OFUSEで応援」で支援して頂けたら励みになります!

OFUSEのやり方(説明)

関連記事
記事特集