【linux】findで抽出したファイルをtarで圧縮するコマンド
問題
findで抽出したファイルをtarで圧縮できる?
これだとfindで最後に引っかかったファイルしか圧縮されなかった。
find ./ -mtime -10 | tar zcvf hogehoge.tar.gz
答え
xargsを使う。
find ./ -mtime -10 | xargs tar zcvf hogehoge.tar.gz
xargsはなかなか優れものらしく、検索するといろいろな使い方が見つかる。
かしこいなあと思わせてくれるのが、こんな場合。
find . -name \*~ | xargs rm
find . -name \*~ -exec rm {} \;
すると、ファイルの数だけrmプロセスが起動、終了するところを、xargsでは引数の最大長を考慮して引数にぎりぎりいっぱいまで渡してくれて、rmする回数を激減させてくれる。
コメント