GNU/Linux >> Linux の 問題 >  >> Linux

文字列を含む名前のすべてのファイルを検索

-maxdepth オプションは -name の前にある必要があります 以下のようなオプション

find . -maxdepth 1 -name "string" -print

find を使用 :

find . -maxdepth 1 -name "*string*" -print

現在のディレクトリ内のすべてのファイルが検索されます (削除 maxdepth 1 再帰的にしたい場合) "string" を含み、それを画面に出力します。

「:」を含むファイルを避けたい場合は、次のように入力できます:

find . -maxdepth 1 -name "*string*" ! -name "*:*" -print

grep を使用する場合 (ただし、ファイルの内容を確認したくない限り、必要ないと思います)次を使用できます:

ls | grep touch

しかし、繰り返します find

は、あなたのタスクにとってより優れた、よりクリーンなソリューションです。


次のように grep を使用します。

grep -R "touch" .

-R 再帰を意味します。サブディレクトリに移動したくない場合は、スキップしてください。

-i 「大文字と小文字を区別しない」を意味します。これも試してみる価値があるかもしれません。


find $HOME -name "hello.c" -print

これは $HOME 全体を検索します (つまり、/home/username/ ) システムで「hello.c」という名前のファイルを検索し、それらのパス名を表示します:

/Users/user/Downloads/hello.c
/Users/user/hello.c

ただし、HELLO.C には一致しません。 または HellO.C .一致させるには、大文字と小文字を区別せずに -iname を渡します 次のようなオプション:

find $HOME -iname "hello.c" -print

出力例:

/Users/user/Downloads/hello.c
/Users/user/Downloads/Y/Hello.C
/Users/user/Downloads/Z/HELLO.c
/Users/user/hello.c

-type f を渡します ファイルのみを検索するオプション:

find /dir/to/search -type f -iname "fooBar.conf.sample" -print
find $HOME -type f -iname "fooBar.conf.sample" -print

-iname GNU または BSD (OS X を含む) バージョンの find コマンドで動作します。お使いのバージョンの find コマンドが -iname をサポートしていない場合 、 grep を使用して次の構文を試してください コマンド:

find $HOME | grep -i "hello.c"
find $HOME -name "*" -print | grep -i "hello.c"

または試す

find $HOME -name '[hH][eE][lL][lL][oO].[cC]' -print

出力例:

/Users/user/Downloads/Z/HELLO.C
/Users/user/Downloads/Z/HEllO.c
/Users/user/Downloads/hello.c
/Users/user/hello.c

Linux
  1. Centos –すべてのファイルの名前を特定の名前に変更しますか?

  2. 特定の文字列を含むファイルの数は?

  3. テキスト文字列を含まないすべてのファイルを検索するにはどうすればよいですか?

  1. ディレクトリ内のファイル サイズがゼロ (0) バイトのすべてのファイルを再帰的に検索する方法

  2. Linuxで.rbで終わるすべてのファイルを見つける方法は?

  3. Linuxで特定の親ディレクトリを持つすべてのファイルを見つける方法は?

  1. 検索ですべてのグラフィック イメージ ファイルを一覧表示しますか?

  2. Linux で特定のテキストを含むすべてのファイルを見つけるにはどうすればよいですか?

  3. Linux で名前に無効な Windows 文字を含むファイルを検索する