하위 디렉터리도 있는 디렉터리에서 고유한 파일을 찾고 싶습니다.
특정 유형의 파일이 있습니다 .lib
.
.lib
서로 다른 하위 디렉터리에 동일한 파일이 있습니다. .lib
내 홈 디렉터리에서 고유한 이름을 가진 파일 목록을 찾아야 합니다 . 이를 수행할 수 있는 방법이 있습니까?
현재 내가 사용하고 있는
find -name "*.lib" > lib_file_list
그러나 일부 .lib
파일이 여러 하위 디렉터리에 있기 때문에 중복된 결과가 발생합니다. CSH를 사용하고 있습니다.
답변1
GNU 도구 사용:
find . -name '*.lib' -print0 | awk -v RS='\0' -F/ '! seen[$NF]++'
답변2
이것이 내가하려는 일입니다.
find -name '*.lib' -printf '%f\n' | sort | uniq > lib_file_list
기억해야 할 몇 가지 사항은 다음과 같습니다.
- 이것은 파일의 전체 경로를 제공하지 않습니다. (어쨌든 귀하의 질문에 일부 경로를 제거해야 하기 때문에 중요하지 않다고 생각합니다.)
- 파일 이름에 개행 문자가 있으면 실패합니다.
- 물론 이는 GNU 도구를 사용할 수 있다고 가정합니다.