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