2014-03-28 8 views
2

나는 몇 년 전에 누군가 실수로 폴더 구조를 /home/data에서 /home/something/data으로 복사했다고 의심합니다. 그 이후로 /home/data에는 많은 업데이트와 변경 사항이 있습니다. 해당 위치의 /home/something/data 고유 이름 에 파일 (이름 및 위치)이 있는지 확인하는 가장 쉬운 방법은 /home/data의 복사본이 있는지 확인하는 것입니다.다른 경로에 고유 한 파일 찾기 BASH

답변

2

diff -r dir1 dir2을 사용하면 디렉토리에서 구조와 내용의 차이점을 반복적으로 검색 할 수 있습니다. 추가 플래그를 사용하여 원하는대로 출력 및 동작을 조정할 수 있습니다.

2

을 드라이 런 모드로 사용하면 /home/something/data/home/data에 복사하면 실제로 데이터가 복사되는지 확인할 수 있습니다.

rsync -r --dry-run /home/something/data /home/data 

/home/something/data에서 파일이 /home/data 아래 파일과 같은 경우

, 그것은 복사 할 수 없습니다 것이며, rsync --dry-run 그것을보고하지 않습니다.

1

이 방법이 마음에 들거나 싫어서 모든 파일을 스캔하는 데 약간의 시간이 걸릴 수 있지만 일반적으로 좋은 느낌이 들게됩니다.

각 디렉토리 구조의 최상위로 이동하여 find을 실행하고 각각의 MD5 체크섬 및 모든 파일 얻을 - 내가 OSX 그들이 완료

cd /home/data 
find . -type f -exec md5 -r {} + > /tmp/a 

cd /home/something/data 
find . -type f -exec md5 -r {} + > /tmp/b 

오전로 스위치가 다를 수를의 실행 이 불필요하게 복잡

sort < /tmp/[ab] | uniq -u 
+0

,하지만 오 그렇게 영리한 : sortuniq -u을 통해 출력 파일은 당신에게 (그들은 모든 파일이 두 디렉토리에 동일한 두 번 경우에 나타납니다) 한 번만 표시 줄을 말할 수 있습니다! +1! 나는 그것이'xargs'로 더 읽기 쉬울 것이라고 생각합니다. – slezica