読者です 読者をやめる 読者になる 読者になる

めもぶろぐ

お勉強したこと、趣味なんかを適当に書いてます。。。

Linux Findコマンドを覚える

いつもは

updatedb  からの

locate hogehoge

で必要なファイルを探しておりました。

 

メリット:検索が即座に終わる

デメリット:データベースを更新しなければならない。

 更新しないと、仮に消去済みのファイルがあっても検索にひっかかる

 データベース更新以降のファイルは新たに更新しないと検索に引っかからない

 

 

今まではlocateで良かったのですが、データベース更新の更新を忘れていたりなんだりでうっかりしてしまうことがあったためfindコマンドをちゃんと覚えておこうと思いました。

 

結構調べてみると便利に使えるようですし。updatedbコマンドはcron.dailyで動いているので日をまたぐときは別に気にならないのですが。

その日に色々やってるとうっかり。。。

 

/etc/cron.daily/mlocate.cron

 

#!/bin/sh
nodevs=$(< /proc/filesystems awk '$1 == "nodev" { print $2 }')
renice +19 -p $$ >/dev/null 2>&1
ionice -c2 -n7 -p $$ >/dev/null 2>&1
/usr/bin/updatedb -f "$nodevs"

 

/etc/anacrontab

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1    5    cron.daily        nice run-parts /etc/cron.daily
7    25    cron.weekly        nice run-parts /etc/cron.weekly
@monthly 45    cron.monthly        nice run-parts /etc/cron.monthly

 

 

なので、データベースを必要としないfindコマンドを覚えて使いたいと思います。

基本的な使い方:ファイル名検索

御存知の通り

 

find / -name "hogehoge"

 

/ … ここはパスを入力

-name …ファイル名検索の意

"hogehoge" …ここは検索したいファイル名

 

さて、ぼくは上の使い方しか知らなかったというか、

知っていたけどこれしか使ってませんでした。

 

ちなみにパスを省略した場合は、カレントディレクトリが検索対象になります。

 

アクセス権による検索

find -perm 755

 

ファイルを検索し、そのファイルに対してコマンドを実行

find test -ok cat {} \;

find test -exec cat {} \;

⇛testファイルをcat

 

 

 

27日間の間にファイルを更新したものを検索

find -mtime -27

 

28日以上更新されていないファイルを検索

find -mtime +28

 

28日以上更新されていないファイルを検索し、更新日時を更新

find -mtime +28 exec touch {} \;

 

ちなみにtouchコマンド

touch -mt 201503250101 test

⇛更新日時を2015年3月25日1時1分に修正

 

touch -at 201503250111 test

⇛最終アクセス日時を2015年3月25日1時11分に修正

 

 

ちなみにlsで表示する時間いろいろ

ファイルやディレクトリの作成・更新・参照日時を調べるには

 

めっちゃいい

c-brains.jp


 これもなかなか

matome.naver.jp

 

 

おわり

 

 

 

 

 

広告を非表示にする