最近のOpensource.comの記事で、LewisCowlesはfind
を紹介しました コマンド。
find
は、毎日のツールボックスで最も強力で柔軟なコマンドラインプログラムの1つであるため、もう少し時間をかける価値があります。
少なくとも、find
物事を見つけるための道を歩みます。例:
find /
システム上のすべてのファイルを検索(および印刷)します。そして、すべてがファイルであるため、ソートするための多くの出力が得られます。これはおそらくあなたが探しているものを見つけるのに役立ちません。 path引数を変更して、物事を少し絞り込むことができますが、それでもls
を使用するよりも実際には役に立ちません。 指図。したがって、何を見つけようとしているのかを考える必要があります。
おそらく、ホームディレクトリにあるすべてのJPEGファイルを検索したいでしょう。 -name
引数を使用すると、結果を特定のパターンに一致するファイルに制限できます。
find ~ -name '*jpg'
ちょっと待って!それらのいくつかに大文字の拡張子がある場合はどうなりますか? -iname
-name
のようなものです 、ただし大文字と小文字は区別されません。
find ~ -iname '*jpg'
素晴らしい!しかし、8.3の名前スキームは1985年です。一部の写真には.jpeg拡張子が付いている場合があります。幸い、パターンを-o
で表される「or」と組み合わせることができます。 。
find ~ ( -iname 'jpeg' -o -iname 'jpg' )
近づいています。しかし、jpgで終わるディレクトリがある場合はどうでしょうか。 (ディレクトリにbucketofjpg
という名前を付けた理由 pictures
の代わりに -type
を使用してコマンドを変更できます。 ファイルのみを検索するための引数。
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f
または、後で名前を変更できるように、奇妙な名前のディレクトリを見つけたい場合もあります。
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type d
最近たくさんの写真を撮っていますので、先週変更されたファイルに絞り込みましょう。
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
ファイルステータスの変更時間(ctime
)に基づいて時間フィルターを実行できます )、変更時間(mtime
)、またはアクセス時間(atime
)。これらは数日であるため、よりきめ細かい制御が必要な場合は、代わりに数分で表現できます(cmin
、mmin
、およびamin
、 それぞれ)。希望する時刻が正確にわからない場合は、番号の前に+
を付けることになるでしょう。 (以上)または–
(未満)。
しかし、多分あなたはあなたの写真を気にしないでしょう。ディスク容量が不足している可能性があるため、log
ですべての巨大な(「1ギガバイトより大きい」と定義しましょう)ファイルを見つけたいと考えています。 ディレクトリ:
find /var/log -size +1G
または、bcottonが所有するすべてのファイルを/data
で検索したい場合もあります。 :
find /data -owner bcotton
権限に基づいてファイルを探すこともできます。おそらく、オーバーシェアしていないことを確認するために、ホームディレクトリで世界中で読み取り可能なすべてのファイルを見つけたいと思うでしょう。
find ~ -perm -o=r
この投稿は、find
のほんの一部にすぎません。 できる。テストとブール論理を組み合わせると、探しているファイルを正確に見つけるための信じられないほどの柔軟性が得られます。そして、-exec
のような引数を使用します または-delete
、find
を持つことができます 見つけたものに対して行動を起こします。お気に入りのfind
があります 表現?コメントで共有してください!