grep이 때때로 두 개의 슬래시가 있는 디렉토리를 반환하는 이유는 무엇입니까?

grep이 때때로 두 개의 슬래시가 있는 디렉토리를 반환하는 이유는 무엇입니까?

방금 달렸어grep -ri foo someDir/

나는 돌아왔다

someDir//foo/bar/baz: onDelete() {

이중 슬래시는 왼쪽에 있는 모든 항목이 grep에 제공하는 dir 매개변수에 있음을 의미합니까?

답변1

명령을 실행할 때:

grep -r <pattern> <directory>

모든 파일 이름을 <directory>/<filename>. 끝에 슬래시를 추가하면 <directory>슬래시도 포함되므로 이중 슬래시가 됩니다.

코드는 원래 디렉토리 이름이 언제 끝나는지 알아차리고 /파일 이름을 인쇄할 때 이를 생략할 만큼 똑똑했을 수도 있지만 그들은 신경쓰지 않았습니다. 나는 그것에 대한 유일한 특별한 경우는 루트 디렉토리라고 생각합니다.

grep -r pattern /

/foo/bar/baz대신에 가 인쇄됩니다 //foo/bar/baz. 이는 POSIX가 일련의 슬래시가 단일 슬래시와 동일하게 처리되도록 지정하기 때문입니다.와는 별개로두 개의 선행 슬래시는 구현에 따라 의미가 있습니다(일부 네트워크 파일 시스템 메커니즘이 유사한 구문을 사용하기 때문입니다 //server/pathname). 바라보다Linux는 여러 연속 경로 구분 기호(/home///username///files)를 어떻게 처리합니까?

관련 정보