`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대신 사용하십시오 . 우분투에서는 이것이 기본적으로 가정되는 pwdGNU Coreutils 구현임이 거의 확실합니다.-P

  • 명령줄 옵션을 추가하여 find명령줄 인수에서 심볼릭 링크를 따르도록 지시합니다 -H.

-L마지막 경우에 대신 사용할 수 있지만 -H모든 곳에서 심볼릭 링크를 따르므로 다음과 다른 결과가 나타날 수 있습니다.find .

관련 정보