Unix에서 파일을 검색할 때 ./filename 및 filename이 표시되는 이유는 무엇입니까?

Unix에서 파일을 검색할 때 ./filename 및 filename이 표시되는 이유는 무엇입니까?

참고로 다음 명령을 확인하십시오.

Rinku@Akash ~/test
$ find . -type f -name "autosys*"
./autosys1.txt
./autosys2.txt

찾은 파일 이름에 소스 경로를 추가하고 싶지 않습니다.

답변1

find소스 경로가 앞에 붙은 일치하는 모든 파일을 출력합니다. 비교:

 find $PWD -type f -name "autosys*"

답변2

find진입점이 .실제로는 귀하의 것이기 때문입니다 pwd. 예를 들어 진입점이 다음과 같이 /경로 앞에 추가됩니다 pwd.

$ find / -type f -name "autosys*"
/path/from/root/to/$HOME/to/pwd/autosys1.txt

답변3

파일 이름을 전달하여 경로의 앞부분을 제거할 수 있습니다 sed.

find . -type f -name "autosys*" | sed 's!^\./!!'

줄 바꿈이 포함된 파일의 경우 이는 실패합니다. 이것이 문제인 경우 대체 솔루션을 고려해야 합니다. 그러나 ./이는 경로 이름의 유효한 부분이고 아무런 목적도 없기 때문에 이를 제거해도 기술적으로 이점이 없습니다. (그렇지만 보기에는 더 좋아 보입니다.)

관련 정보