LinuxServer ファイルシステム ファイルやコマンドの検索
長く稼働しているシステムではディレクトリが増えたり、階層が深くなって行き、
保存したファイルが行方不明になることが起こりがちです。
次にあげるコマンドを使用することでファイルの検索を行えます。
findコマンド
findコマンドは、指定したディレクトリ以下から、検索条件にマッチするファイルやディレクトリを検索します。
[コマンド書式]
# find 検索開始ディレクトリ 検索条件 コマンド
検索開始ディレクトリを指定しない場合は、カレントディレクトリを検索します。
さらに、検索条件にメタキャラクタ(*や.など)が使え、検索条件にマッチしたファイルに
対してコマンドが実行できます。
findコマンドの検索式は次のとおりです
検索式 | 説明 |
-name ファイル名 | 検索するファイルを指定します。メタキャラクタとして *、?、[・] を使用することが可能です。 メタキャラクタを使用してファイルを検索する場合は 引用符(””) などで囲みます。 |
-atime 日数 | ファイルへの最終アクセス日を条件とします |
-mtime 日数 | ファイルの最終更新日を条件とします |
-perm アクセス権 | ファイルのアクセス権を条件とします アクセス権の指定方法は数字でもシンボル表現でも構いません |
-size ブロック/ファイルサイズ | ブロックサイズまたはファイルサイズで検索します ファイルサイズの末尾に’c’を付けるとファイルサイズとみなします |
-type ファイルの種類 | ‘-type f’でファイル、’-type d’でディレクトリを検索します |
-user ユーザ名 | ファイルの所有者で検索します |
検索ファイルを表示します | |
-ls ファイルの種類 | 検索ファイルを’ls -l’コマンドと同じように表示します |
-exec コマンド ; | 検索結果に対しコマンドを実行します。 |
-exec コマンド ; | 検索結果に対し、確認をした上でコマンドを実行します。 |
[コマンド]
#find -name “*.txt”
[実行例]カレントディレクトリで”*.txt”にマッチするファイルの検索結果を表示します
./hoge2.txt
./hoge1.txt
./hoge3.txt
[コマンド]
# find -atime 1
[実行例]カレントディレクトリで前日(1日前)にアクセスがあったファイルの検索結果を表示します
./.bash_logout
./hoge4.txt
./.ssh/known_hosts
locateコマンドとupdatedbコマンド
事前に作成したデータベースを使用してfindコマンドより高速に検索します
[コマンド書式]
locate 検索文字列
[コマンド]main.cfファイルを検索
# locate main.cf
[実行例]
/etc/postfix/main.cf
/usr/libexec/postfix/main.cf
/usr/share/doc/postfix-2.9.4/main.cf.default
locateコマンドで使用するデータベースの作成/更新には’updatedbコマンド’使用します。
updatedbコマンドに関する設定は/etc/updatedb.confファイルに記述されており、
cronコマンドを用いて定期的にupdatedbコマンドを実行しています。
PRUNEFS = “9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs
rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs”
PRUNENAMES = “.git .hg .svn”
PRUNEPATHS = “/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp”
PRUNEFS:データベースに登録しないファイルシステムを指定します
PRUNENAMES:データベースに登録しないファイル名を指定します
PRUNEPATHS:データベースに登録しないディレクトリ名を指定します