0kb 파일을 검색하고 더 큰 상응하는 파일을 찾는 방법

0kb 파일을 검색하고 더 큰 상응하는 파일을 찾는 방법

Linux SAMBA 서버에 문제가 있어서 일부 사진(수십 개의 디렉토리에 있는 수백 개의 파일)이 손상되었습니다. 원본이 많이 포함된 Time Machine 백업이 있는 Mac이 있습니다.

Mac에 SAMBA 공유를 설치하면 0kb 파일을 검색할 수 있습니다.

find /Volumes/Photos/ f -empty -not -path '*/\.*'

이 명령을 확장하여 타임머신 설치를 검색하여 0KB 파일에 손상되지 않은 파일이 있는지 확인하려면 어떻게 해야 합니까?

bash 스크립트가 필요하다고 생각합니다. 아니면 파이썬일 수도 있습니다.

답변1

Mac이 아닌 Linux에서만 다음을 테스트할 수 있지만 비표준은 사용하지 않는 것 같습니다.

-파일 이름이 대시로 시작하거나 파일 이름에 개행 문자가 포함되어 있으면 아무런 효과가 없습니다.

다음을 포함하는 디렉터리로 시작합니다.

$ find -type f | xargs du -h
4,0K    ./find_empty_dupes.sh
4,0K    ./sub/sub2/corrupt.txt
0   ./sub/corrupt.txt
0   ./sub/empty.txt

그리고 다음 스크립트를 실행하세요:

#!/bin/bash

find . -type f -empty | while IFS= read -r file; do
    if find . -name "$(basename "$file")" -not -empty | grep -q '.'; then
        echo "$file"
    fi
done

테스트 실행은 다음과 같습니다.

$ ./find_empty_dupes.sh 
./sub/corrupt.txt

관련 정보