"find ... -exec mv ..." 명령을 실행하면 이상한 내용이 포함된 파일이 생성됩니다.

"find ... -exec mv ..." 명령을 실행하면 이상한 내용이 포함된 파일이 생성됩니다.

/myhome/sourcedir바이너리 파일을 폴더에서 다른 폴더 로 이동하고 싶습니다 /myhome/targetdir. 명령을 사용했습니다.find /myhome/sourcedir -type f -cmin +3 -exec mv '{}' /myhome/targetdir ';'

/myhome/sourcedir이 명령을 실행하기 전에 폴더가 있었지만 폴더가 /myhome/targetdir존재하지 않습니다. 방금 을(를) 만드는 것을 잊어버렸습니다 /myhome/targetdir.

이 명령의 결과 - /myhome/targetdir새 파일이 생성됩니다. 파일이 크고 이상한 기호가 많이 포함되어 있습니다.))

모든 파일을 어떻게 복구하나요?

답변1

finda, b, c라는 3개의 파일이 발견되었다고 가정합니다 . 결과적으로 3개의 명령이 생성됩니다.

mv a /myhome/targetdir
mv b /myhome/targetdir
mv c /myhome/targetdir

따라서 a는 /myhome/targetdir로 이름이 바뀌고, b는 /myhome/targetdir로 이름이 바뀌고(원래 a가 깨짐), c는 /myhome/targetdir로 이름이 바뀌어 원래 b가 깨집니다. 파일 c는 괜찮습니다(이름이 변경되었을 뿐입니다). 다른 파일에 문제가 있습니다. 구경하다덮어쓴 파일을 복구할 수 있나요?. 뭔가를 복구할 수도 있습니다.

앞으로는 다음을 사용하세요:

mv -t /myhome/targetdir '{}' 

더 안전할 것입니다.

관련 정보