ホームページ >システムチュートリアル >Linux >Linux での Find コマンドの 7 つの強力な使用法

Linux での Find コマンドの 7 つの強力な使用法

WBOY
WBOY転載
2024-02-15 08:30:03447ブラウズ

わかりました。この段落の詳細な疑似オリジナル バージョンを作成してみます。これは私が修正したバージョンです:

Linux では、Windows Server を使用している場合を除き、バックエンド開発者が find コマンドを習得する必要がある操作の 1 つです。

これは技術面接でもよくある話題です。ここに本当の質問があります:

Linux サーバー上に logs というディレクトリがある場合、その中にある最後にアクセスされたのが 1 年以上前のログ ファイルを削除するにはどうすればよいでしょうか? 🤔

# この状況は非常に一般的ですが、驚くべきことに、すべての開発者がインタビューでこのコマンドを明確に記述できるわけではありません。

回答: まず、cd コマンドを使用して、対応するディレクトリに入る必要があります。その場合、コマンドは次のようになります:

リーリー

Linux 中 find 命令的 7 个强大用途上記のコマンドを完全に理解していなくても、心配する必要はありません。この記事では、find コマンドを最終的にマスターできるように、find コマンドの実際的な使い方を 7 つ紹介します。すでにこのことを知っている場合は、この記事を読むと復習になります。

1. ファイル名または正規表現に基づいてファイルを検索します

最も簡単な使用法から始めましょう。特定の名前でファイルを検索するには、次のコマンドを使用します:

リーリー

Linux 中 find 命令的 7 个强大用途上記のコードの . 記号は、現在のパスを示します。別のパスにあるファイルを検索したい場合は、次のように指定するだけです:

リーリー

Linux 中 find 命令的 7 个强大用途PNG 形式のすべての画像を見つけるにはどうすればよいですか?正規表現を使用します:

リーリー

デフォルトでは、find コマンドは通常のファイルを検索しますが、すべてを明確にするためにタイプを指定することをお勧めします。

リーリー

2. さまざまな種類のファイルを見つける

通常のファイルの検索に加えて、-type オプションを指定することで他の種類のファイルも検索できます。

例:

リーリー

またはシンボリックリンク:

リーリー

3. 特定のタイムスタンプでファイルを検索

特定のタイムスタンプでファイルを検索するには、Linux システムの 3 つの異なるタイムスタンプを理解する必要があります。

アクセス タイムスタンプ (atime): ファイルが最後に読み取られた時刻。変更タイムスタンプ (mtime): ファイルの内容が最後に変更された時刻。変更タイムスタンプ (ctime): ファイルのメタデータ (所有権、場所、ファイル タイプ、アクセス許可設定など、ファイルが最後に変更された日時など)。

したがって、冒頭で述べたインタビューの質問と同様に、1 年以上前のファイルを検索するには、次のコマンドを作成できます。

リーリー

Linux 中 find 命令的 7 个强大用途mtime がちょうど 5 日前であるファイルを検索する必要がある場合は、「より大きい」を意味する記号を含めないでください。

リーリー

Linux 中 find 命令的 7 个强大用途明らかに、記号は「より大きい」を意味し、- 記号は「より小さい」を意味します。したがって、ctime が 5 ~ 10 日のファイルを検索できます:

リーリー

Linux 中 find 命令的 7 个强大用途

4. ファイル サイズによるファイルの検索

-size オプションを使用すると、特定のサイズでファイルを検索できます。次の規則を使用して測定単位を指定できます:

  • b:512字节块(默认)
  • c:字节
  • w:两字节单词
  • k:千字节
  • M:兆字节
  • G:千兆字节

与按时间戳查找文件类似,+号表示“大于”,-号表示“小于”。例如,要查找大小在10兆字节和1千兆字节之间的文件:

find . -type f -size +10M -size -1G

5、按权限查找文件

适当控制文件的权限是Linux管理员的重要任务。find命令的-perm选项可以帮助我们按特定权限搜索文件:

find . -type f -perm 777

例如,上述命令将搜索所有具有777权限的文件,这意味着文件对其所有者、组和所有用户具有读、写和执行权限。

6、按文件所有者查找文件

这个任务很简单。我们只需要在-user选项中指定一个用户名。例如,以下命令将找到所有属于 linuxmi 的文件:

find -type f -user linuxmi

7、在查找文件后执行命令

在大多数情况下,我们希望在找到所需文件后执行一些后续操作,例如删除它们、检查它们的详细信息等等。-exec命令使所有这些操作变得更加简单。

现在,为了理解如何使用它,让我们回到之前提到的面试问题:

find . -type f -atime +365 -exec rm -rf {} ;

上述命令中-exec选项后面是rm -rf,用于删除文件。{}是找到的结果的占位符。

注意:占位符{}非常重要,特别是如果你想要删除文件。因为如果你不使用它,命令将对所有文件执行,而不仅仅是通过find命令找到的文件。

为了尝试一下,在终端上执行以下两个命令并检查它们的结果有什么不同:

一个使用了占位符:

find . -type f -atime +5 -exec ls {} ;

另一个没有使用:

find . -type f -atime +5 -exec ls ;

跟在-exec选项后面的命令必须以分号结束。正如我们所知,转义字符用于取消单个字符的特殊含义。在Linux中,反斜杠\被用作转义字符。因此,我们将其用于分号字符。

总结

阅读完find命令的7个用途后,之前提到的面试问题现在看起来非常简单了。现在你能直接写出答案并清楚地解释吗?

find . -type f -atime +365 -exec rm -rf {};

感谢阅读。如果你喜欢,请关注Linux迷 www.linuxmi.com 以享受更多精彩文章。 🙂

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

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。