最近の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があります 表現?コメントで共有してください!