루트 폴더 콘텐츠 ID를 확인하는 가장 빠른 방법은 무엇입니까?

루트 폴더 콘텐츠 ID를 확인하는 가장 빠른 방법은 무엇입니까?

몇 가지 독창적인 솔루션이 있지만 실행하는 데 너무 오래 걸립니다.

find "/home/user" -type d -printf "%P\n" | sort > "source_1d"
find "/mnt/home/user" -type d -printf "%P\n" | sort > "source_2d"
diff -u "source_1d" "source_2d"                                    # '-_d' means 'directories'

pat="/home/user"; rpt="\/home\/user"
find "$pat" -type f -print0 | sort -z | xargs -r0 sha256sum | sed -E "s/\s\s$rpt\//  .\//" | > "source_1f"
pat="/mnt/tra/home/user"; rpt="\/mnt\/tra\/home\/user"
find "$pat" -type f -print0 | sort -z | xargs -r0 sha256sum | sed -E "s/\s\s$rpt\//  .\//" | > "source_2f"
diff -u "source_1f" "source_2f"

두 번째 부분을 비교에 사용된 두 번째 소스에 대한 디스크 크기 사용량 계산으로 바꿀 수 있나요? 아니면 ext4가 속한 폴더의 크기와 크기가 같다면 같은 의미가 아닌가요?

답변1

또 다른 방법은 실행하는 것입니다 rsync --dry-run. 그러면 두 트리를 모두 확인하고 차이점을 출력합니다.

rsync --dry-run --checksum source destination

또는 rsync신뢰할 수 있는 빠른 방법(수정 시간 및 크기).

rsync --dry-run source destination

또는 사용 가능한 방법 중에서 어떤 체크섬을 사용할지 결정하세요 --checksum-choice. 또한 차이점에 대한 추가 정보가 필요한 경우 를 추가할 수 있습니다 --itemize.

각 파일의 전체 체크섬을 수행하는 것은 파일 전체를 읽어야 하기 때문에 속도가 느려질 수 있다는 점에 유의하세요.

답변2

사용 hardlink -vn. 바라보다 http://manpages.ubuntu.com/manpages/bionic/man1/hardlink.1.html. hardlink동일한 파일을 확인하고 연결하되 -nv동일한 파일만 나열하십시오.

관련 정보