今日のLinuxおよびBSDシステムが世界的に人気を博している主な理由の1つは、デフォルトのツールとユーティリティです。 Linuxは、コマンドラインから直接ファイルを検索してアクセスするための最良の方法をいくつか提供しています。 Linuxのfindコマンドは、Linuxユーザーがシステムで特定のタイプのファイルを効果的に検索できるようにするユーティリティの1つです。これは、強力な検索機能を可能にするコマンドラインユーティリティであり、経験豊富なユーザーにとって魅力的なツールになります。 findコマンドを詳細に習得し、Linuxスキルを向上させたい場合は、適切な場所に来ています。
Linuxでの検索コマンドの日常的な例
Linuxコマンドを学ぶ最良の方法は、自分で試してみることだと私たちは信じています。以下に示すコマンドは、デスクトップ環境に関係なく、すべてのLinuxディストリビューションで正常に機能するはずです。したがって、Ctrl + Tを使用してターミナルを開き、ここからコマンドをコピーして貼り付けることで、Linuxでいくつかのfindコマンドをすばやく試すことができます。これらのコマンドを日常のコンピューティングで可能な限り活用して、短時間でそれらを習得するようにしてください。
検索コマンドの構造
Linuxのfindコマンドの構造は次のとおりです。
[パス][式][アクション]
を検索しますここで、パスは、指定されたファイルを検索するために「検索」しないディレクトリを示します。この式を使用すると、いくつかの基準に基づいてファイルをフィルタリングできますが、アクションを使用すると、ファイルに対してシェルコマンドを実行できます。デフォルトのアクションはprintです。これは、任意のパスの式に一致するファイルを単に印刷します。検索はファイルを再帰的に表示します。つまり、最初にすべてのディレクトリをトラバースし、それに応じて結果を出力します。
基本的なLinux検索コマンド
いくつかの基本的なfindコマンドを利用して、findで何ができるかを理解できます。これらのコマンドは非常に単純であり、他のコマンドラインユーティリティの経験は必要ありません。
1。 現在のディレクトリ内に存在するすべてのファイルを一覧表示する
$検索
---これにより、現在のディレクトリに存在するすべてのファイルが出力されます。現在のディレクトリに追加のディレクトリが含まれている場合は、それらも表示されます。このコマンドは、コマンドと同等です
$find-print。
2。 特定のディレクトリに存在するすべてのファイルを一覧表示する
$ find / folder
このコマンドは、ディレクトリ / folder内に存在するすべてのファイルを出力します 。このコマンドを使用して、Linuxシステム内の特定のパスのすべてのファイルを一覧表示できます。
3。 特定のファイルを検索
$ find -name test.txt
このコマンドは、 test.txtというファイルを検索します 現在のディレクトリ内および他のすべてのサブディレクトリ内。特定のファイルを検索する場合は、このコマンドを使用してください。
4。 ディレクトリ内の特定のファイルを検索する
$ find / Docs -name test.txt
このコマンドは、 / Docsというフォルダーでtest.txtという名前のファイルを検索します。 。このコマンドを使用すると、絶対パスと相対パスの両方を使用できます。
5。 複数のディレクトリでファイルを検索する
$ find / opt / usr / var -name foo.scala -type f
複数のディレクトリで同時にファイルを検索する場合は、Linuxのfindコマンドを使用できます。検索するときは、ディレクトリ名の後にスペースを続けて入力するだけです。
6。 ケースを無視してファイルを検索
$ find -iname test.txt
このコマンドは、ファイル test.txtを検索します ケースを一致させずに。したがって、 test.txtという2つのファイルがある場合 およびTest.txt 、両方のファイルが表示されます。 -inameオプションを使用すると、findコマンドでこれを実行できます。
7。 現在のディレクトリ内のフォルダを検索する
$ find -type d
このコマンドは、現在の作業ディレクトリの下にあるすべてのディレクトリを一覧表示します。特定のディレクトリを一覧表示するための名前オプションを追加できます。
8。 ディレクトリ内の特定のフォルダを検索する
$ find / home -type d -name users
このコマンドは、 / home内のusersというフォルダーを検索します ディレクトリ。 -nameの代わりに-inameオプションを追加して、大文字と小文字を区別せずに検索できます。
9。 名前を使用してPHPファイルを検索
$ find -type f -name test.php
このコマンドは、 test.phpというPHPファイルを一覧表示します。 現在の作業ディレクトリ内に存在します。
10。 すべてのPHPファイルを検索
$ find -type f -name“ * .php”
Linuxでのこのfindコマンドは、現在の作業ディレクトリ内にあるすべてのPHPファイルを出力します。特定のディレクトリにのみ存在するPHPファイルを一覧表示するためのタイプの前にパスオプションを追加できます。
11。 すべてのシンボリックリンクを検索
$ find / usr -type l
上記のコマンドは、現在のディレクトリ内にあるすべてのシンボリックリンクを検索し、それに応じて出力します。
12。 異なる拡張子のファイルを検索する
$検索。 -type f \(-name“ * cache” -o -name“ * xml” -o -name“ * html” \)
上記のfindコマンドは、拡張子が異なるcacheという名前のファイルを検索します。 nameオプションの後に-oフラグを追加することで、追加の拡張子を検索検索できます。
許可に基づいてファイルを検索
findコマンドを使用すると、Linuxユーザーはパーミッションステータスに基づいてファイルを検索できます。これは、システムに複数のユーザーがいて、誰もあなたのデータに不正にアクセスできないようにする必要がある場合に便利です。
13。 777権限が設定されているファイルを検索する
$ find -type f -perm 0777 -print
このコマンドは、現在の作業ディレクトリ内で権限が777に設定されているすべてのファイルを一覧表示します。これらは、すべてのユーザーが読み取り、書き込み、および実行できるファイルです。
14。 777権限のないファイルを検索
$ find / -type f! -パーマ777
Linuxでのこのfindコマンドは、777以外の権限が設定されているファイルのみを検索します。/を他の場所に置き換えて、検索結果を絞り込むことができます。
15。 644のアクセス許可を持つSGIDファイルを検索
$ find / -perm 2644
このfindコマンドは、アクセス許可ステータスが644に設定されているSGIDファイルのみを検索します。SGIDファイルは、所有していない、またはアクセスできないファイルへの一時的なアクセスを許可します。
16。 551のアクセス許可を持つすべてのスティッキービットファイルを検索
$ find / -perm 1551
スティッキービットファイルは、ファイルまたはフォルダのセットであり、それらを作成したユーザーまたはrootユーザーのみが名前を変更または削除できます。このコマンドは、551の権限を持つシステム内のすべてのスティッキービットファイルを表示します。
17。 すべてのSUIDファイルを検索
$ find / -perm / u =s
SUIDファイルを使用すると、ファイルグループの所有者またはrootユーザー以外のユーザーがファイルグループを一時的に所有できます。このfindコマンドは、現在のLinuxマシンにあるすべてのSUIDファイルを一覧表示します。
18。 すべてのSGIDファイルを検索
$ find / -perm / g =s
SGIDファイルは多くの点でSUIDファイルに似ていますが、SGID権限を持つファイルが実行されると、元の所有者がプロセスを実行しているかのように実行される点が異なります。このfindコマンドは、許可ステータスに関係なく、すべてのSGIDファイルを一覧表示します。
19。 読み取り専用ファイルを検索
$ find / -perm / u =r
読み取り専用ファイルは、Linuxユーザーがそれらに書き込んだり実行したりすることを禁止します。これらは、ファイルの所有者またはrootユーザーのみが書き込みまたは実行できます。この検索コマンドは、マシンに現在あるすべての読み取り専用ファイルを表示します。
20。すべての実行可能ファイルを検索
$ find / -perm / a =x
実行可能ファイルは、バイナリファイルなどの実行可能なファイルです。上記のLinuxの「findコマンド」は、システムでそのようなファイルをすべて検索し、それに応じてリストします。
21。 777のアクセス許可と644へのchmodを持つすべてのファイルを検索
$ find / -type f -perm 0777 -print -exec chmod 644 {} \;
上記のfindコマンドは、777権限が関連付けられているすべてのファイルを検索し、chmodコマンドを使用して権限ステータスを644に変更します。 644権限でファイルの読み取りまたは書き込みができるのはあなただけです。
22。 777のアクセス許可と755へのchmodを持つすべてのディレクトリを検索
$ find / -type d -perm 777 -print -exec chmod 755 {} \;
このLinuxのfindコマンドは、777のアクセス許可を持つすべてのディレクトリを検索し、アクセス許可のステータスを755に変更します。これは、本質的に、所有者にのみ完全なアクセス許可を許可し、他のユーザーに読み取りと実行のアクセス許可を与えることです。
検索を使用して特定のファイルを検索
検索は、特定のファイルを非常に効果的に検索するために使用できます。 findを使用して、いくつかの基準に基づいてファイルを選択し、それらに対してファイル削除などのシェル操作を実行できます。
23。 ファイルを見つけて削除する
$ find -type f -name“ test.txt” -exec rm -f {} \;
このLinuxの「検索」コマンドは、多くのファイルのリストからファイルを削除する必要がある場合に使用されます。この場合、最初に test.txtというファイルが見つかります。 現在のディレクトリにあり、rm-fを使用して削除します。
24。 複数のファイルを見つけて一度に削除する
$ find -type f -name“ * .mp3” -exec rm -f {} \;
検索コマンドは、特定のファイルタイプの大きな配列を検索し、それらを一度に削除する場合に便利です。上記のコマンドは、システムで .mp3を検索します ファイルを作成し、プロンプトなしでそれらを削除します。 rm部分にインタラクティブフラグ-iを追加して、削除が発生するたびにプロンプトを表示することができます。
25。 システム内のすべての空のファイルを検索
$ find / tmp -type f -empty
空のファイルは、非常に短時間でシステムリソースを占有する可能性があります。上記のコマンドを使用して、findコマンドを使用してすべての空のファイルを一覧表示します。これらのファイルを削除するには、-exec rm -f{}\;を追加します。上記のコマンドと同じです。
26。 システム内のすべての空のフォルダを検索
$ find / tmp -type d -empty
このコマンドは、 / tmp内にあるすべての空のフォルダーを一覧表示します ディレクトリ。これを使用して、他のディレクトリで空のフォルダを検索したり、以前と同じように削除したりすることもできます。
27。 システム内のすべての非表示フォルダを検索
$ find / home -type f -name“。*”
Linuxシステムでは、非表示のフォルダの前には通常、単一のドット(。)が付いています。上記のコマンドを使用して、/homeディレクトリ内にあるすべての非表示のフォルダを一覧表示します。
ユーザーに基づいてファイルを検索
検索コマンドは、ユーザーグループに基づいてファイルを検索する場合にも役立ちます。 Linuxの検索コマンドを使用して、特定のユーザーグループの特定のファイルを検索し、ファイルのアクセス許可をすばやく変更できます。
28。 ユーザーに属するファイルを見つける
$ find / -user root -name test.txt
Linuxでfindコマンドを使用して、特定のユーザーが所有する単一のファイルを検索できます。上記のコマンドは、 test.txtというファイルを検索します / ユーザーrootに属するディレクトリ。
29。 ユーザーに属するすべてのファイルを検索
$ find / home -user username
上記のLinuxコマンドは、ユーザー「username」に属する/homeディレクトリ内のすべてのファイルを検索します。 「username」を置き換える必要があります 自分に属するすべてのファイルを検索するためのLinuxユーザー名を使用します。
30。 グループに属するすべてのファイルを検索
$ find/home-グループプログラマー
Linuxファイルは通常いくつかのグループに属しています。上記のLinuxコマンドを使用すると、「プログラマー」と呼ばれる特定のグループに属するすべてのファイルを検索できます。 ターミナルに印刷します。 「プログラマー」を検索するグループ名に置き換えます。
31。ユーザーの特定のファイルを検索する
$ find / home -user bob -iname“ * .txt”
findコマンドを使用して、ユーザーに属する特定のファイルを検索できます。上記のコマンドはこれを実行し、ユーザーbobに属するすべての.txtファイルを一覧表示します。 bobをユーザー名と.txtに置き換えます 自分に属する特定のタイプのファイルを検索するための他のファイルタイプを使用します。
時間に基づいてファイルを検索
検索により、システム管理者はシステムを効果的に監視することもできます。変更時間やアクセス時間などに基づいてファイルを検索できます。
32。 過去50日間に変更されたすべてのファイルを検索
$ find / -mtime 50
findコマンドを使用すると、ユーザーは特定の時間内に変更されたファイルを検索できます。上記のコマンドは、50日前に変更されたシステム内のすべてのファイルを出力します。
33。 過去50日間にアクセスされたすべてのファイルを検索
$ find / -atime 50
-atimeオプションは、定義された時間枠内にアクセスされたファイルを表示します。上記のコマンドは、50日前にアクセスされたシステムのすべてのファイルを一覧表示します。
34。 過去50〜100日間に変更されたすべてのファイルを検索
$ find / -mtime +50 –mtime -100
Linuxのfindコマンドを使用すると、ユーザーは特定の時間範囲で変更されたすべてのファイルを検索できます。 +および–演算子は、これを行うために-mtimeと組み合わせて使用されます。上記のコマンドは、過去50〜100日間に変更されたすべてのファイルを検索します。
35。 過去1時間に変更されたすべてのファイルを検索
$ find / -cmin -60
このコマンドは、過去1時間に変更されたすべてのファイルを検索して一覧表示します。 /を特定のディレクトリに置き換えて、検索を絞り込むことができます。その間に変更されたファイルを検索するには、60を120などの他の数値に変更します(120の場合は2時間)。
36。 過去1時間に変更されたすべてのファイルを検索
$ find / -mmin -60
上記のコマンドは、過去1時間以内に変更されたすべてのファイルを表示します。目的に応じて必要な時間枠を変更するには、60を他の番号に切り替えます。
37。 過去1時間にアクセスされたすべてのファイルを検索
$ find / -amin -60
このコマンドは、過去1時間にアクセスしたすべてのファイルを表示します。前述の2つのコマンドと同様に、希望する結果に合わせて60を自由に変更してください。
サイズに基づいてファイルを検索
サイズに基づいてファイルを検索する必要がある場合があります。 Findもこの点で便利です。サイズに基づいてファイルをより正確に検索するためのさまざまなオプションを追加できます。
38。 サイズ50MBのファイルを検索
$ find / -size 50M
Linuxでのこの「検索コマンド」は、50MBを超えるサイズのすべてのファイルを出力します。置換/ 検索結果をより効果的に絞り込むために、目的のディレクトリと他のサイズの50Mを使用します。
39。 100MBを超えるすべてのファイルを検索
$ find / -size + 100M
上記のコマンドは、 /内に100MBを超えるマークがあるすべてのファイルを一覧表示します。 ディレクトリ。希望する結果を得るために、他のファイルサイズで100Mを変更できます。
40。 50MBから100MBのファイルを検索
$ find / -size + 50M -size -100M
指定したサイズの範囲内のファイルを検索する必要がある場合があります。上記のコマンドは、50MBから100MBのサイズのすべてのファイルを表示します。特定の検索条件に一致するようにオプションのパラメータを変更します。
41。 500MBを超えるすべてのファイルを削除
$ find / Movies -size + 500M -exec rm -rf {} \;
findコマンドは、特定の制限を超えてファイルを検索し、それらを端末から即座に削除する場合に役立ちます。あるフォルダに古い映画があり、それらを一度に削除したいとします。上記のコマンドを使用すると、これを正確に実行できます。必ず/Moviesを置き換えてください ファイルが存在するフォルダ名を使用します。
42。 最大のファイルを検索
$検索。 -type f -exec ls -s {} \; |並べ替え-n-r|頭-5
上記のfindコマンドは、現在の作業ディレクトリとそのサブディレクトリの下にある5つの最大のファイルを出力します。
43。 最小のファイルを検索
$検索。 -type f -exec ls -s {} \; |並べ替え-n|頭-5
Linuxでfindコマンドを使用して、最小のファイルを表示することもできます。このコマンドは、現在のディレクトリの下にある5つの最小のファイルを出力します。
その他の検索コマンド
Linuxのfindコマンドは、含まれているテキストに基づいてファイルを検索する、ファイルを検索および削除する、パターンに基づいてファイルを検索するなど、多くの追加機能を提供します。以下のコマンドは、これらの機能のいくつかを簡単に示しています。
44。 特定のファイルを見つけて削除する
$ find / -type f -name * .mp3 -size + 10M -exec rm {} \;
このLinuxの「findコマンド」を使用すると、ユーザーはシステム内で10MBを超えるスペースを占めるすべての.mp3ファイルを検索して削除できます。 .mp3は、他のファイルタイプや特定のタイプのファイルのサイズパラメータに置き換えることができます。
45。 パターンに一致しないファイルを見つける
$ find / home -type f -not -name“ * .html”
Linuxでの上記のfindコマンドは、 / home内のすべてのファイルを検索します .htmlで終わらないディレクトリ。 -notオプションを使用すると、「検索」でこれを実行できます。
46。 ファイル内のテキストでファイルを検索
$検索。 -type f -name“ * .java” -exec grep -l StringBuffer {} \;
grepを使用して、ファイルに含まれるテキストに基づいてファイルを検索できます。上記のLinuxの「findコマンド」は.javaを検索します 内部にStringBufferを含むファイル。 -iフラグをgrepに追加すると、この検索で大文字と小文字が無視されます。
47。 ファイルの検索とコピー
$検索。 -type f -name“ * .mp3” -exec cp {} / home / MusicFiles \;
検索は、特定のファイルを検索して新しい場所にコピーするために使用できます。上記のコマンドは、現在のディレクトリ内のすべての.mp3ファイルを検索し、それらをフォルダ / home / MusicFilesにコピーします。 。
48。 ファイルの検索と移動
$検索。 -type f -name“ * .jpg” -exec cp {} / home / Pictures \;
検索は、ファイルを効果的に移動するためにも使用できます。上記のコマンドは、現在のディレクトリの下にあるすべての.jpgファイルを検索し、それらをディレクトリ / home / Picturesに移動します。 。
49。 ファイルの検索とtar
$検索。 -type f -name“ * .java” | xargs tar cvf myfile.tar
findを使用して、特定のファイルを検索し、それらをtarballにアーカイブできます。上記のコマンドは、現在のディレクトリ内のすべての.javaファイルを検索し、それらを myfile.tarというtarファイルに圧縮します。 。
50。エラーメッセージのフィルタリング
$ find [paths] [expression] [actions] 2> / dev / null
「許可が拒否されました」などのエラーが発生する場合があります または、いくつかの検索コマンドを試しているときに何か他のもの。これらのエラーを/dev / nullにリダイレクトできます 、上記のように。
終わりの考え
Linuxのfindコマンドは、システムの効果的な監視や頻繁なファイル処理に使用できる最も便利なコマンドラインツールの1つです。さまざまな「検索コマンド」のスマートな実装により、Linuxのパワーユーザーがすぐに利用できるようになります。私たちの編集者は、あなたの日常の使用に最も役立つ検索コマンドの概要を説明するために最善を尽くしました。これらのコマンドを日常のコンピューティングで利用して、Linuxシステムを最大限に活用してください。