任意のファイル/ディレクトリ名を検索したいのですが、同じ位置に検索文字列を含むファイルパスを一度だけリストしたいのです。特に、検索文字列に一致するディレクトリ内のすべてのファイルではありません。
以下に例をlocate -i flatpak
示します。
/etc/flatpak
/etc/dbus-1/system.d/org.freedesktop.Flatpak.SystemHelper.conf
/etc/flatpak/remotes.d
/etc/profile.d/flatpak.sh
/home/simon/.cache/gnome-software/flatpak/installation-tmp/repo/objects/74
/home/simon/.cache/gnome-software/flatpak/installation-tmp/repo/objects/75
/home/simon/.cache/gnome-software/flatpak/installation-tmp/repo/objects/76
/home/simon/.cache/gnome-software/flatpak/installation-tmp/repo/objects/77
/home/simon/.cache/gnome-software/flatpak/installation-tmp/repo/objects/78
/home/simon/.cache/gnome-software/flatpak/installation-tmp/repo/objects/79
/home/simon/.cache/gnome-software/flatpak/installation-tmp/repo/objects/7a
/home/simon/.cache/gnome-software/flatpak/installation-tmp/repo/objects/7b
/home/simon/.cache/gnome-software/flatpak/installation-tmp/repo/objects/7c
/home/simon/.cache/gnome-software/flatpak/installation-tmp/repo/objects/7d
/var/lib/flatpak
/var/lib/flatpak/.changed
/var/lib/flatpak/.removed
/var/lib/flatpak/app
/var/lib/flatpak/appstream
/var/lib/flatpak/exports
/var/lib/flatpak/repo
/var/lib/flatpak/runtime
しかし、私は次のような検索結果が必要です。
/etc/flatpak
/etc/dbus-1/system.d/org.freedesktop.Flatpak.SystemHelper.conf
/etc/profile.d/flatpak.sh
/home/simon/.cache/gnome-software/flatpak
/var/lib/flatpak
そして、これに最も適したツールはどれですか?locate
、find
、fd-find
?
flatpak
ファイル名のみで(他のパスコンポーネントではなく)検索したいようですので、-b
/--basename
オプションを使用できます。
そう:
locate -ib flatpak
別のアプローチは、-r
/--regex
オプションを使用して次のように書くことです。
locate -ir 'flapak[^/]*$'
それはされflatpak
以外の任意の数の文字に続いて/
、ファイルパスの末尾に続きます。
ただし、flatpak
。の後に(現在のロケールで)文字以外の文字が含まれるファイル名を見逃す可能性があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加