フルファイル名でファイルを検索しますか?

フルファイル名でファイルを検索しますか?

実行すると、ファイル名に表示されるファイルがlocate syn返されます。syn

そのフルネームを持つファイルを検索するにはsynlocate --regex syn$正しいアプローチですが、そうではlocate --regex ^syn$ありませんか?

答え1

この--regexオプションは、ファイル名だけでなくフルパスにも適用されます。したがって、locate --regex syn$パス(名前を含む)が次に終わるすべてのファイルとディレクトリは一致しますが、フルパスは次のようになり、synそのlocate --regex syn$ファイルsynが存在しないファイルのみが一致します。

$ locate --regex ^etc$ ## returns nothing
$ locate --regex ^/etc$
/etc

あなたが探しているオプションは次のとおりです-b

   -b, --basename
          Match  only  the base name against the specified patterns.  This
          is the opposite of --wholename.

したがって、あなたはできます

locate -b --regex ^sys$

locatedb名前が正確に 。すべてのファイルとフォルダが一覧表示されますsys

関連情報