일부 파일에 대해 찾기 및 복사를 사용하려고 하는데 문제는 find 명령을 실행하고 wc를 확인하면 일부 결과가 표시되고 이 파일을 다른 디렉터리에 복사한 후에는 다른 결과(파일 수)가 표시된다는 것입니다.
여기서 문제를 명확하게 이해할 수 있습니다.
[root@localhost student]# find /tmp/files/test/ -type f -size -1000c | wc
664 664 19863
크기 기준과 일치하는 664개의 파일이 표시되는 것을 볼 수 있습니다. 이제 이를 디렉터리에 복사합니다.
[root@localhost student]# find /tmp/files/test/ -type f -size -1000c -exec cp {} /tmp/files/pictures/ \;
복사한 후 파일 개수를 확인합니다.
[root@localhost student]# ls -l /tmp/files/pictures/ | wc
657 5906 36049
이 파일에는 657개의 파일만 있습니다. 이유는 무엇입니까?
복사되지 않은 두 파일을 어떻게 비교합니까?
그리고 find의 매뉴얼 페이지에는 자세한 옵션이 없습니다.
답변1
파일 이름이 중복될 수 있나요? 그렇다면 기존 파일을 덮어쓰고 최종적으로 대상에 도달하는 총 파일 수를 줄입니다.
이것을 시도해보고 이것이 무엇을 얻는지 확인할 수 있습니다. 발견된 파일의 고유한 기본 이름 수만 계산하면 됩니다.
find /tmp/files/test/ -type f -size -1000c -print0 | xargs -n1 -0 basename | sort | uniq | wc -l