ホームページ  >  記事  >  運用・保守  >  Linux で Find コマンドを使用してファイルを検索する方法

Linux で Find コマンドを使用してファイルを検索する方法

青灯夜游
青灯夜游オリジナル
2019-03-15 16:25:354968ブラウズ

Linux Find コマンドは、Linux システム管理者ツール ライブラリの中で最も強力なツールの 1 つです。これを使用すると、ユーザーが指定した式に基づいてディレクトリ階層内のファイルとディレクトリを検索し、一致する各ファイルにユーザーを適用できます。 . 指定された操作。検索コマンドの使い方については以下の記事で紹介していますので、ご参考になれば幸いです。

Linux で Find コマンドを使用してファイルを検索する方法

Linux Find コマンド

find コマンドを使用して、ファイルのアクセス許可、タイプ、日付、所有権、サイズ ファイルの検索を待ちます。 grep や sed などの他のツールと組み合わせて使用​​して、これらのファイルに対する操作を実行することもできます。

find コマンドの使用方法について説明する前に、まず基本的な構文を理解しましょう。

find [options] [path...] [expression]

説明:

● Options 属性: シンボリック リンクの処理、デバッグ オプション、および最適化方法を制御します。

● Path... 属性: find がファイルを検索する開始ディレクトリを定義します。

● 式属性: 「オプション」、「検索モード」、「演算子で区切られた操作」で構成されます。

次の例を見てみましょう:

find  -L /home/projects/ -name "*.js" -exec chmod 644 {} \;

説明: このコマンドにはパラメーター -L (オプション) が含まれており、これにより、find コマンドがシンボリック リンクをたどって /home/projects を検索できるようになります。 / (パス ...)、.js(式) で終わるすべてのファイルを検索し、一致するすべてのファイルのアクセス許可を 644 に設定します。

ファイルを種類別に見つけるにはどうすればよいですか?

検索するファイルの種類を指定するには、-type パラメーターを使用する必要があります。

次の記述子を使用してファイル タイプを指定できます。

● f: 通常のファイル

● d: ディレクトリ

● l: シンボリック リンク

#●●c: ロールデバイス

#b: ブロックデバイス

##●p: 名前付きパイプ (FIFO)

##● s: ソケット

例:

現在の作業ディレクトリ内のすべてのディレクトリを検索したい場合は、次のように使用できます。

find . -type d

システム タイプ:

find / -type c

#ファイルを名前で検索するにはどうすればよいですか?

名前によるファイルの検索は、おそらく find コマンドの最も一般的な使用方法です。ファイルを名前で検索するには、検索するファイルの名前とともに -name オプションを渡します。

例:

/home/linuxize ディレクトリで document.pdf という名前のファイルを検索するには、次のコマンドを使用できます:

sudo find /home/linuxize -type f -name document.pdf
If 大文字と小文字を区別しない検索を実行するには、-iname コマンドを使用して -name オプションを変更できます。

sudo find /home/linuxize -type f -iname document.pdf

説明: 上記のコマンドは、Document.pdf、DOCUMENT.pdf などに一致します。

拡張子でファイルを見つけるにはどうすればよいですか?

拡張子によるファイルの検索は、名前によるファイルの検索と同じです。

例:

/var/log/nginx ディレクトリ内で .log.gz で終わるすべてのファイルを検索する場合は、次のように使用できます:

find /var/log/nginx -type f -name '*.log.gz'
正規表現 *.log.gz に一致しないすべてのファイルを検索したい場合は、-not パラメーターを使用できます。たとえば、*.log.gz で終わらないすべてのファイルを検索するには、次を使用します:

find /var/log/nginx -type f -not -name '*.log.gz'

サイズでファイルを検索する方法?

#サイズに基づいてファイルを検索するには、サイズ条件とともに -size パラメーターを渡す必要があります。ファイル サイズは、次の接尾辞を使用して指定できます。 ● b: 512 バイトのブロック (デフォルト)

● c: バイト

● w: 2 バイトのワード

● k:キロバイト

● M:メガバイト

● G:ギガバイト

例:

いる/見つけるtmp ディレクトリ内のすべてのファイルのうち、正確に 1024 バイトである場合は、次のコマンドを実行できます。

find /tmp -type f -size 1024c

find コマンドを使用すると、指定したサイズより大きいファイルまたは小さいファイルを検索することもできます。例:

現在の作業ディレクトリ内の 1MB 未満のすべてのファイルを検索できます。これには、サイズ値の前にマイナス記号を追加する必要があります:

find . -type f -size -1M

1MB を超えるファイルを検索する場合サイズ範囲内のファイルも検索するには、プラス記号を使用する必要があります:

find . -type f -size +1M

。たとえば、次のコマンドは 1 ~ 2 MB のすべてのファイルを検索します:

find . -type f -size +1M -size 21M

更新日でファイルを検索するには?

find コマンドは、ファイルが最後に変更、アクセス、または変更された時期に基づいてファイルを検索することもできます。 サイズで検索する場合と同様に、プラス記号とマイナス記号を使用して、より大きいか小さいかを指定できます。

例:

数日前に dovecot 構成ファイルを変更しましたが、ファイル名を忘れてしまいました。過去 5 日間に変更された、/etc/dovecot/conf.d/ ディレクトリ内の .conf で終わるすべてのファイルを簡単にフィルタリングできます。

find /etc/dovecot/conf.d -name "*.conf" -mtime 5
また、30 日間またはすべてのファイルをリストすることもできます。最近変更された /home ディレクトリ:
find /home -mtime +30 -daystart

アクセス許可によってファイルを検索するにはどうすればよいですか?

ファイルのアクセス許可に基づいてファイルをフィルターするには、-perm オプションを使用する必要があります。 #########例えば:######

要在/var/www/html目录中查找权限为775的所有文件:

find /var/www/html -perm 644

还可以使用减号-或斜杠/为数字模式添加前缀。

当斜杠/用作前缀时,至少一个类别(用户,组或其他类别)必须至少为文件匹配设置相应的位。

find . -perm /444

说明:搜索对用户,组或其他人设置了读权限的所有文件。

如果使用减号-作为前缀,则必须至少设置要匹配的文件。

find . -perm -664

说明:搜索对所有者和组具有读写权限的文件,并且其他用户可以读取。

如何按所有者查找文件?

要查找特定用户或组拥有的文件,可以使用-user和-group选项。

例如,要搜索用户拥有的所有文件和目录linuxize,可以运行:

find / -user linuxize

这是更高级的示例,假设是希望查找用户www-data拥有的所有文件,并将匹配文件的所有权从www-data更改为nginx:

find / -user www-data -type f  -exec chown nginx {} \;

相关视频教程推荐:《linux教程

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上がLinux で Find コマンドを使用してファイルを検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。