ホームページ >システムチュートリアル >Linux >Linux での Find コマンドの 7 つの強力な使用法
わかりました。この段落の詳細な疑似オリジナル バージョンを作成してみます。これは私が修正したバージョンです:
Linux では、Windows Server を使用している場合を除き、バックエンド開発者が find コマンドを習得する必要がある操作の 1 つです。
これは技術面接でもよくある話題です。ここに本当の質問があります:
Linux サーバー上に logs というディレクトリがある場合、その中にある最後にアクセスされたのが 1 年以上前のログ ファイルを削除するにはどうすればよいでしょうか? 🤔
# この状況は非常に一般的ですが、驚くべきことに、すべての開発者がインタビューでこのコマンドを明確に記述できるわけではありません。回答: まず、cd コマンドを使用して、対応するディレクトリに入る必要があります。その場合、コマンドは次のようになります:
リーリー
上記のコマンドを完全に理解していなくても、心配する必要はありません。この記事では、find コマンドを最終的にマスターできるように、find コマンドの実際的な使い方を 7 つ紹介します。すでにこのことを知っている場合は、この記事を読むと復習になります。
リーリー
上記のコードの . 記号は、現在のパスを示します。別のパスにあるファイルを検索したい場合は、次のように指定するだけです:リーリー
PNG 形式のすべての画像を見つけるにはどうすればよいですか?正規表現を使用します:リーリー
デフォルトでは、find コマンドは通常のファイルを検索しますが、すべてを明確にするためにタイプを指定することをお勧めします。リーリー
例:
リーリー
またはシンボリックリンク:リーリー
アクセス タイムスタンプ (atime): ファイルが最後に読み取られた時刻。変更タイムスタンプ (mtime): ファイルの内容が最後に変更された時刻。変更タイムスタンプ (ctime): ファイルのメタデータ (所有権、場所、ファイル タイプ、アクセス許可設定など、ファイルが最後に変更された日時など)。
したがって、冒頭で述べたインタビューの質問と同様に、1 年以上前のファイルを検索するには、次のコマンドを作成できます。リーリー
mtime がちょうど 5 日前であるファイルを検索する必要がある場合は、「より大きい」を意味する記号を含めないでください。リーリー
明らかに、記号は「より大きい」を意味し、- 記号は「より小さい」を意味します。したがって、ctime が 5 ~ 10 日のファイルを検索できます:リーリー
b
:512字节块(默认)
c
:字节
w
:两字节单词
k
:千字节
M
:兆字节
G
:千兆字节
与按时间戳查找文件类似,+号表示“大于”,-号表示“小于”。例如,要查找大小在10兆字节和1千兆字节之间的文件:
find . -type f -size +10M -size -1G
适当控制文件的权限是Linux管理员的重要任务。find命令的-perm选项可以帮助我们按特定权限搜索文件:
find . -type f -perm 777
例如,上述命令将搜索所有具有777权限的文件,这意味着文件对其所有者、组和所有用户具有读、写和执行权限。
这个任务很简单。我们只需要在-user选项中指定一个用户名。例如,以下命令将找到所有属于 linuxmi 的文件:
find -type f -user linuxmi
在大多数情况下,我们希望在找到所需文件后执行一些后续操作,例如删除它们、检查它们的详细信息等等。-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 サイトの他の関連記事を参照してください。