findの検索結果から圧縮ファイル(.tar.gz)を作るLinuxコマンド
こんにちは。
普段はIT業界についてのブログを執筆してるエンジニアです。
» 参考:プログラマーの年収は200万円以下です【IT業界の残酷な成功法則】
» 参考:【一生使える本です】bashの解説書 厳選3選【おすすめ】
今回は、findコマンドについての解説記事です。
Linuxコマンドを調べる人
「findコマンドで検索した結果、ヒットしたファイルをまとめて圧縮ファイルにしたい。どうすればよいでしょう?」
こんな疑問に答えます。
本記事では、findコマンドの結果をtarコマンドにパイプで直接渡して圧縮ファイルを作るコマンドを紹介し、具体例を示します。
検索&圧縮コマンドとコマンド・オプションの解説
使うコマンドは以下の通りです
コマンド・オプションの解説
- [find] -print0 null(‘\0’)区切りで検索結果を出力します。
- [tar] -zcv 圧縮ファイル(.tar.gz)にします。
- [tar] -T - 出力(find検索結果)を対象にします。
- [tar] –null null(‘\0’)区切りでファイル名を読み込みます。
以下では、テスト用ファイルの準備から圧縮ファイル取得までの具体例を示します。
テストで使うファイルの準備
以下の手順を、お手元のLinux環境でやってみてください
テスト用のディレクトリを作成・移動してから、
findで検索する対象のファイルを作ります。
$ mkdir test $ cd test $ touch {1..10}.txt $ ls
実行結果は以下の通りです。
[実行結果]
1.txt 10.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
findコマンドで検索した結果を圧縮ファイル(.tar.gz)にする
findコマンドで検索して圧縮するコマンドを実行します。
$ find . -print0 | tar -cvz -T - --null -f /tmp/temp.tar.gz
実行結果は以下の通りです。
[実行結果]
a . a ./10.txt a ./9.txt a ./8.txt a ./5.txt a ./4.txt a ./6.txt a ./7.txt a ./3.txt a ./2.txt a ./1.txt a ./10.txt a ./9.txt a ./8.txt a ./5.txt a ./4.txt a ./6.txt a ./7.txt a ./3.txt a ./2.txt a ./1.txt
find結果から作成した圧縮ファイルを確認します。
$ ls -l /tmp/temp.tar.gz -rw-r--r-- 1 user01 group01 264 1 17 21:56 /tmp/temp.tar.gz $ tar ztvf /tmp/temp.tar.gz drwxr-xr-x 0 user01 group01 0 1 17 21:52 ./ -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./10.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./9.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./8.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./5.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./4.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./6.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./7.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./3.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./2.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./1.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./10.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./9.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./8.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./5.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./4.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./6.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./7.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./3.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./2.txt -rw-r--r-- 0 user01 group01 0 1 17 21:52 ./1.txt
圧縮成功
findで検索した結果から圧縮ファイルができました。
おわりに
findの検索結果から圧縮ファイル(.tar.gz)を作るLinuxコマンドを解説しました。
おさらい
- [find] -print0 null(‘\0’)区切りで検索結果を出力します。
- [tar] -zcv 圧縮ファイル(.tar.gz)にします。
- [tar] -T - 出力(find検索結果)を対象にします。
- [tar] –null null(‘\0’)区切りでファイル名を読み込みます。
今回は以上です。参考になりましたら幸いです。
Blog TOP Linuxコマンドを勉強したい人向け|Linuxの使い方 記事まとめ
Linux&Linuxコマンドを勉強したい人向けの記事もくじ
用語解説・技術一般
"UNIXとLINUX"の違いについて解説します
CUIとGUIの違い・特徴について解説します
サーバリソースを確認するコマンドの使い方
【Linux】CPU使用率を確認する3つの方法を解説します
【Linux】topコマンドで,CPU消費の原因を特定する方法
【Linux】ps実行時に-efオプションを付ける理由について
【Linux】メモリ使用率を確認する|容量・空きの確認も
【Linux】ディスク容量を確認する|ディスク容量監視も
ファイル操作に関するコマンドの使い方
【Linux】ファイルの行数をカウントする方法を解説
【Linux】文字コード変換ならiconvコマンド1択です
【Linux】/dev/nullを、エンジニアが使う2つの目的
【Linux】findのexecオプションの使い方とその注意点
【Linux】findの結果から圧縮ファイルを作るコマンド
【Linux】hostsの場所はどこ?→/etc/hostsにあります
【Linux】touchコマンドで,時刻更新&空ファイル作成
Linux管理者用コマンドの使い方
【Linux】再起動コマンド(shutdown)の使い方と注意点
よく使う便利なコマンドの使い方
【Linux】改行なしでechoコマンドを使う時の -nオプション
【Linux】sleepコマンドの使用例と注意点について解説する
【Linux】rmコマンドでディレクトリを削除する方法を解説
【Linux】ファイルを削除するコマンド2選【rm以外もあり】
【Linux】awkの区切り文字を指定する,-Fオプションを解説
【Linux】sedで文字列の置換をするeオプションを解説する
【Linux】dateコマンドのフォーマットとその便利な使い方
【Linux】大文字から小文字に変換する方法【小文字から大文字も】
シェルの便利機能
「今の会社を辞めて転職します。エンジニア職に強みのあるおすすめの転職サイト・転職エージェントを教えて欲しい。また好条件で転職するにはどうすれば良いですか?」こんな悩みに答えます。 ITエンジニアに強いおすすめの転職サイト・転職エージェント3選 転職成功には強くてニューゲームが条件。どうやって実現する?