0
다음과 같은 경우에 대비해 궁금합니다.디렉토리에서 같은 이름의 파일을 찾으십시오.
목표 : 디렉토리 트리에서 같은 이름의 파일을 식별하십시오. 중복 된 파일이나 그러한 파일의 위치/이름이 있으면 어떤 지식도 없습니다.
예상 출력 : 위치가있는 파일을 나열하십시오.
입력 내용 : 검색을위한 최상위 디렉토리 경로.
내 알고리즘 :
1.list ("."나는 찾기 -name를 사용했다)
2.List1 대상 디렉토리에있는 모든 파일 : 파일 이름을 분류
3.List2 : 2 단계 & 3에서 Uniquify 파일 이름
4.Diff 목록은 반복 파일 위치 5.extract
를 얻을 수 있습니다.
Sample Directory:
temp/
|-- d1
| |-- d2
| | `-- f3
| |-- d3
| | `-- f3
| |-- f1
| `-- f2
`-- d4
|-- d5
| |-- f2
| `-- f6
|-- f4
`-- f5
> find temp/ -type f -follow -print | sed 's;.*/;;' | sort -u > ~/tmp/12
> find temp/ -type f -follow -print | sed 's;.*/;;' | sort -n > ~/tmp/11
> diff ~/tmp/11 ~/tmp/12
3,4d2
< f2
< f3
> find temp/ -name f2
temp/d1/f2
temp/d4/d5/f2
> find temp/ -name f3
temp/d1/d2/f3
temp/d1/d3/f3
이 과정을 단순화하고 싶습니다. 도움이되면 도움이 될 것입니다. 자세한 내용이 필요하면 알려 주시기 바랍니다.
중복 만 일치시키는 데 도움이되는 정렬 뒤에 (또는 대신하여)'uniq -d'를 추가 할 수 있습니다. 또한,'tree' 명령을 사용하여 표시되는 형식화 된 출력을 볼 수도 있습니다. 여기서'dir1''dir2''에'tree'를 실행하여 ** tmp **에 결과를 쓰고 grep을 사용하여 중복 된 것을 찾을 수 있습니다. 다른 접근법에 대한 생각. 당신이 가진 것은 나쁜 시작처럼 보이지 않습니다. –
가능한 경우 대상 디렉토리에 쓰기 권한이 없으므로 tmp 파일을 피할 수있는 방법을 찾고 있습니다. – user1495523