![Unix에서 파일을 검색할 때 ./filename 및 filename이 표시되는 이유는 무엇입니까?](https://linux55.com/image/114281/Unix%EC%97%90%EC%84%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EA%B2%80%EC%83%89%ED%95%A0%20%EB%95%8C%20.%2Ffilename%20%EB%B0%8F%20filename%EC%9D%B4%20%ED%91%9C%EC%8B%9C%EB%90%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
참고로 다음 명령을 확인하십시오.
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!^\./!!'
줄 바꿈이 포함된 파일의 경우 이는 실패합니다. 이것이 문제인 경우 대체 솔루션을 고려해야 합니다. 그러나 ./
이는 경로 이름의 유효한 부분이고 아무런 목적도 없기 때문에 이를 제거해도 기술적으로 이점이 없습니다. (그렇지만 보기에는 더 좋아 보입니다.)