Linuxコマンドのfindいろいろ

linux, PukiWiki, Web, Web全般, サーバー関連 2011年2月26日,

ふらふらとDropWikiのmuninログを見てると
Apacheのログがどんどん増えてた。

Apacheのログを置いてるパーティション(/usr)は20GBしかないので
80GBある/homeに移動させる事にした。
毎日ログローテートしてるので数が数百個もあり、いちいち1個づつmvなんてやってられない。

そんなときはfindコマンドでリストを出してパイプでxargsをつかうと一覧したファイルのみをごっそり移動させる

1
2
3
4
#ログが置いてあるフォルダに移動
cd /usr/local/apache2/logs/
#カレントディレクトリ以下で30日以上更新のないファイルを移動
find . -mtime +30 | xargs mv --target-directory=/home/backup/logs/

いきなりxargsで渡して実行しちゃうと危ないので、まずは
find . -mtime +30
だけを実行して標準出力されるファイルのリストを確認してからxargsにパイプしましょう。
当然 mv –target-directory=/home/backup/logs/ のとこを rm -rf とかにすると削除できる。

findってめっちゃ便利なんだけどどうしても普段はlocateで検索しちゃうのでなかなか使わない…
これ、さらっと使えたらめっさかっこいいやろな~

僕はいまだにコマンドが覚えきれず、
かすかに覚えていても不安で結局検索しちゃいますね。

そんな僕がメモ帳に保存してるfindコマンドのいろいろです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#カレントディレクトリ以下のファイルに書かれてる文字列aaaをbbbに一括で置換
find . -type f | xargs perl -p -i -e "s/aaa/bbb/g"

#カレントディレクトリ以下の拡張子がcgi plのファイルに書かれている文字列aaaをbbbに一括置換
find . \( -name "*.cgi" -o -name "*.pl" \) | xargs perl -p -i -e "s/aaa/bbb/g"

#拡張子が"txt"であるファイルについて,文字列"Linux"を探す
find . -type f -name "*.txt" | xargs grep "Linux"

#カレントディレクトリ以下のフォルダだけをすべて775へ変更する(カレントディレクトリを含む)
find . -type d -exec chmod 775 {} \;

#カレントディレクトリ以下のファイルだけをすべて644へ変更する
find . -type f -exec chmod 664 {} \;

#カレントディレクトリ以下のcgi pl sh pm phpの拡張子のファイルを一覧
find . \( -name "*.cgi" -o -name "*.pl" -o -name "*.sh" -o -name "*.pm" -o -name "*.php" \)

#カレントディレクトリ以下の拡張子がhtml htm js php のファイルに書かれている「sonar」という文字を検索
find . \( -name "*.html" -o -name "*.htm" -o -name "*.js" -o -name "*.php" \) | xargs grep "sonar"

#カレントディレクトリ以下の拡張子がcgi pl sh pmのファイルのパーミッションを755に変更
find . \( -name "*.cgi" -o -name "*.pl" -o -name "*.sh" -o -name "*.pm" \) -exec chmod 755 {} \;

同様の手法で文字コード変換したり、改行コード変換したり、、
findはほんと強力ですね。
僕のメモももっと強力にしていきたいもんです。

2 Responses to “Linuxコマンドのfindいろいろ”

  1. fernandes エレキギター Says:

    The best thing you could do is only to provide range of demo golf shots along at the golf-club save, as well as the figure out what estimates a very for example like what you may have owned some time ago.

  2. infrared 6s for sale Says:

    The high point of Buck’s Pocket State Park is this hike to Point Rock. The trail starts out around a boulder-strewn runoff area that, during periods of rainfall, can have a wild tropical look to it, with heavy moss. Before the trail ascends to Point Rock, a 70-foot waterfall pops out of the boulders and drops into the underground caverns known as the Big Sink. From the top of the point are expansive views of the sandstone cliffs lining surrounding mountains. Trail Surface: Dirt path; some rocky trail.
    infrared 6s for sale [url=http://www.epaygen.com/6c4ada-jordan-7-retro-raptor.html]infrared 6s for sale[/url]

コメントどうぞ