find ./path/here/
내가 얻을 때 버그입니까 ?
./path/here//foo
./path/here//bar
후행 슬래시 없이 경로를 지정하기를 원 하지만 find
확실히 탭 완성으로 인해 남겨진 경로를 감지하고 그에 따라 출력을 조정할 수 있습니다. 그렇지 않은 이유가 있나요?
답변1
기술적으로는 버그입니다.POSIX 상태저것
계층 구조에서 발견되는 다른 파일의 모든 경로 이름은 현재 경로 피연산자 <슬래시>의 연결로 구성됩니다.현재 경로 피연산자가 하나로 끝나지 않은 경우및 경로 피연산자를 기준으로 한 파일 이름
하지만이중 슬래시는 아무런 차이가 없습니다, 따라서 ./path/here//foo
및 ./path/here/foo
는 항상 동일한 파일입니다. (몇 가지 Unix 변형에서 경로의 시작 부분에 이중 슬래시가 있으면 차이가 있습니다. 그렇다면 find
이 경우를 특별히 처리하시기 바랍니다.)
답변2
참고로, find some/dir/
대신 사용할 수 있는 한 가지 이유는 실제로 디렉터리에 대한 심볼릭 링크이고 해당 심볼릭 링크가 가리키는 디렉터리에서 파일을 찾고 싶을 find some/dir
때입니다 .some/dir
find
하지만 이 경우 더 나은 대안이 있습니다.
find -H some/dir
-H
ls
몇 가지 POSIX 유틸리티( , cp
, ... ) 에서 지원하는 옵션으로 chmod
유틸리티가 인수로 전달된 심볼릭 링크를 따르도록 지시 -L
합니다 .-follow
find
모든심볼릭 링크, 인수로 전달된 것뿐만 아니라 디렉토리 탐색 중에 발견된 것).
이는 실제로 디렉토리가 아닌 find some/dir/
경우 와 기능적으로 동일하지 않습니다. some/dir
이 경우에는 find some/dir/
실패합니다.디렉토리가 아님find -H some/dir
디렉터리가 아닌 파일을 나열하는 동안 오류가 발생 합니다.