Webサイトの運営会社で得た技術的な知識を記録していきます。 サーバー情報、Webデザイン、プログラミング、このWebサイトで利用させていただいているBlogger(ブロガー)についても公開していきます。

特定のファイルを一か所に収集する方法をシェルスクリプトで実現

先日、サーバーの中にあるけど、特定の拡張子のファイルを全て集めなくてはならない作業が入りました。

その時集めたファイルは、GIFの画像ファイル(.gif)だったんですが、一か所に集めるにはどうすれば良いのか。

全てのファイルをダウンロードしてきてから、検索する方法も可能ですが、全容量が大きいと全てをダウンロードするのに時間が掛かります。
サーバー内にどこにあるのか検索するだけならば、findコマンドで可能です。


例えば、下記で .gif が置いてある場所は判明します。
/home/user/public_html/ 内の gifの拡張子を検索する方法です。

$ find /home/user/public_html/ -name *.gif


場所が分かるだけでも便利なのですが、できればもっと楽したいです。

そこで、このようなコマンドです。
find と xargs で組み合わせることで、一か所に集めることが可能です。

実行例

/home/user/public_html/内の拡張子がgifのファイルを/home/user/tmp/に収集します。

$ find /home/user/public_html/ -name *.gif | xargs -l --replace=REPLACE cp --parents REPLACE /home/user/tmp/


あとは、/home/user/tmp/ をごそっとダウンロードするだけです。
そのままダウンロードしても良いし、圧縮してダウンロードした方が早いかもしれませんね。

ZIPファイルに圧縮するならば、こちらでOKかも
/home/user/tmp/ のディレクトリを /home/user/gif.zip に圧縮します。

$ zip /home/user/gif.zip -r /home/user/tmp/

あまり使わないから、すぐ忘れてしまいますね。

以上で、特定のファイルを一か所に収集する方法でした。


0 件のコメント:

人気記事

ラベル

アーカイブ

ページ

このブログを検索