`pwd`を使用すると既存のファイルが見つかりませんが、ドット検索を使用すると見つかるのはなぜですか?

`pwd`を使用すると既存のファイルが見つかりませんが、ドット検索を使用すると見つかるのはなぜですか?

これは変です:

$ ls -l 'Lana Del Rey - Blue Jeans (Remastered 2011).mp3'
-rw-rw-r-- 1 gigi gigi 4.0M Dec 11 23:06 'Lana Del Rey - Blue Jeans (Remastered 2011).mp3'

$ find . -name 'Lana Del Rey - Blue Jeans (Remastered 2011).mp3'
./Lana Del Rey - Blue Jeans (Remastered 2011).mp3

# but still in the same directory:
$ find `pwd` -name 'Lana Del Rey - Blue Jeans (Remastered 2011).mp3'
# nothing found!
# directly using the path pointed by pwd will produce the same nothing-found situation
# with pwd followed by / it works
$ find `pwd`/ -name 'Lana Del Rey - Blue Jeans (Remastered 2011).mp3'
/home/gigi/Music/Youtube_mp3/Lana Del Rey - Blue Jeans (Remastered 2011).mp3
$ pwd
/home/gigi/Music/Youtube_mp3

これはUbuntu 21.10(実際にはXUbuntu)で発生します。
重複するエイリアスは使用しませんfind

答え1

これは基本的にここで説明したのと同じ理由です。

具体的には、findシンボリックリンクは基本的には通過せず、(少なくともbashシェルを使用すると仮定すると)組み込みpwdコマンドも通過しません。現在のディレクトリがシンボリックリンクであるかのように動作を同じにするためのいくつかのオプションがありますpwd.

  • 組み込みを使用しますpwdが、次のようにシンボリックリンクを強制的に解決します。pwd -P

  • /bin/pwd代わりに使用してください。 Ubuntuでは、これが基本的に想定されるpwdGNU Coreutilsの実装であることはほぼ確実です。-P

  • コマンドラインオプションを追加して、コマンドライン引数findにシンボリックリンクに従うように指示します-H

-L最後のケースでは代わりに使用できますが、-Hどこでもシンボリックリンクに従うので、次のような結果が表示されることがあります。find .

関連情報