find
ファイルとディレクトリをそれぞれ検索するためのコマンドのパラメータとがあります-f
が、それらの間に とまたは の2 つのコマンド-d
を記述することは避けたいです。find
&&
||
1 つのコマンドでファイルまたはディレクトリ (条件に応じて見つかったもの) を検索したいのですが、OR 演算できます-d
か-f
?
答え1
オプションを使用します-o
。
から探すman ページ (OPERATORS の見出しの下):
expr1 -o expr2 Or; expr2 is not evaluated if expr1 is true.
答え2
-f
も も指定しない場合は-d
、find
ではすべての種類の inode (ファイル、ディレクトリ、デバイス、リンクなど) が表示されます。ファイルとディレクトリのみが必要な場合は を使用し-o
、他の種類の条件を使用する場合はエスケープされた括弧を使用することもできます。
たとえば、過去 2 日間に変更/作成されたすべてのファイル、ディレクトリ、リンクなど:
find . -iname '*blah*' -mtime -2
上記と同じですが、ファイルとディレクトリのみを対象とします (sym リンク、デバイスは対象外)
find . -iname '*blah*' \( -type d -o -type f \) -mtime -2