find에 이중 슬래시가 표시되어도 괜찮나요?

find에 이중 슬래시가 표시되어도 괜찮나요?

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/dirfind

하지만 이 경우 더 나은 대안이 있습니다.

find -H some/dir

-Hls몇 가지 POSIX 유틸리티( , cp, ... ) 에서 지원하는 옵션으로 chmod유틸리티가 인수로 전달된 심볼릭 링크를 따르도록 지시 -L합니다 .-followfind모든심볼릭 링크, 인수로 전달된 것뿐만 아니라 디렉토리 탐색 중에 발견된 것).

이는 실제로 디렉토리가 아닌 find some/dir/경우 와 기능적으로 동일하지 않습니다. some/dir이 경우에는 find some/dir/실패합니다.디렉토리가 아님find -H some/dir디렉터리가 아닌 파일을 나열하는 동안 오류가 발생 합니다.

관련 정보