マンページは次のようにfind
述べています。
- 名前
ファイル名ベース(先行ディレクトリが削除されたディレクトリパス)
$ find ~ -name bookmark | less
何も返さないけど
$ find ~ -name bookmarks | less
./.streamtuner/cache/bookmarks
./.config/zathura/bookmarks
./.elinks/bookmarks
3つのゲームがあります。
なぜ最初のものは2番目のものと一致しないのですか?
ファイル名の場所に関係なく、名前にその内容を含むファイルを見つけるにはbookmark
どうすればよいですか?ありがとうございます。bookmark
find
答え1
与えられたパターン-name
一致する必要がありますみんなデフォルトのファイル名。このモードの動作は次-name
のように定義されます。
現在のパス名のデフォルト名がパターンと一致する場合は、デフォルトパスをtrueと評価する必要があります。
つまり、フルネーム名を次のように比較すると模様あなたは与えた。パターンは基本的にシェルグローブに似ていると考えることができます。*
、?
および[...]
パターンを使用する場合、パターンの開始と終了は文字列の開始と終了と整列します。
したがって、あなたのコマンドは次のようになります。
find ~ -name bookmarks
フルファイル名なので、「bookmarks」というファイルを探してください。ただし、次のとおりです。
find ~ -name bookmark
パターンにワイルドカードがないため、「bookmark」というファイルのみが検索されます。
bookmark
名前付きファイルを一致させるには、bookmarks
次のものを使用できます。
find ~ -name 'bookmark*'
だから探したいなら
ファイル名内のブックマークの場所に関係なく、名前にブックマークを含むファイル
あなたが使用できる:
find ~ -name '*bookmark*'
名前に任意数の文字が含まれ、その後にbookmark
、任意数の文字が含まれたファイルと一致します。
答え2
-name
コマンドの引数の引数は、find
コマンドラインのファイル/ディレクトリ名にあるワイルドカードとまったく同じです。 * は任意の文字列、? は任意の文字です。