Linux에서 최근에 삭제 된 파일과 폴더를 찾는 방법은 무엇입니까?


23

/home/sam/officedocuments수백 개의 폴더와 파일이있는 하나의 특정 폴더 ( )가 있습니다. 실수로 일부 파일과 폴더를 삭제했다고 생각하지만 확실하지 않습니다.

파일 / 폴더를 찾는 방법 :

  • 리눅스에서 최근에 삭제?
  • Linux에서 최근에 변경 되었습니까?

어떤 파일과 폴더가 삭제되었는지 알고 싶습니다. 삭제 된 파일과 폴더를 복구하는 것은 중요하지 않습니다.

운영체제 : CentOS


1
사용중인 파일 시스템을 알려주십시오. 예를 들어 ext2, ext3 및 ext4 사용 ext3grep유틸리티를 사용 하여 삭제 된 파일에 대한 정보를 찾을 수 있습니다. 일부 스크립팅을 사용하면 특정 디렉토리를 기반으로 삭제 된 파일을 나열하는 간단한 응용 프로그램을 구성 할 수 있습니다. 그러나 이러한 유틸리티는 디스크에 대한 원시 액세스가 필요하므로 제대로 사용하지 않으면 매우 위험합니다 ( 동시에 디스크에 쓰기를 수행하면 현재 작업으로 인해 깨진 / 잘못된 데이터가 반환 될 수 있음을 기억하는 경우 비 차단 읽기 전용 작업은 완전히 안전해야합니다 ).
Sampo Sarrala

답변:


3

… 최근에 Linux에서 변경 되었습니까?

find수정 시간으로 검색하는 데 사용 합니다. 예를 들어 지난 3 일 동안 터치 된 파일을 찾으려면 다음을 수행하십시오.

find /home/sam/officedocuments -mtime -3

"3 일보다 오래된"의 경우을 사용하십시오 +3.

… Linux에서 최근에 삭제 되었습니까?

거의 불가능합니다. 파일이 삭제되면 간단하게 사라집니다. 대부분의 시스템에서 이것은 어디에도 기록되지 않습니다.


감사. 3 일 동안 나는 3마지막 30순간 에 사용해야하는 것을 사용해야 합니까?
Gupta Sumit

Linux는 파일 / 폴더를 삭제하기 전에 항상 확인을 요청합니까?
서밋 굽타

15
"거의 불가능" 이것은 그냥 일반 잘못이며,이 때문에 내가 해야 할 이 downvote. 삭제 시간은 일부 파일 시스템에 저장되며 이러한 fs의 예는 ext3파일 시스템입니다. ext3grep은 사냥 할 때 도움이 될 수 있습니다. 내가 가지고 superuser.com/a/433785/132604 (찾는 데 사용할 수있는 유틸리티에 대한 몇 가지 정보와 링크가 가능하게 너무 복구 ) 삭제 된 파일과 그들에 대한 정보를 표시합니다. 대부분의 파일 시스템에서 파일을 삭제하면 실제로 제거되지 않지만 필요할 때 덮어 쓸 수있는 공간으로 표시됩니다.
Sampo Sarrala

백업에서 파일을 복원하고 해당 파일 목록을 파일 시스템의 파일 목록과 비교할 수 있습니다. 누락되거나 새로 작성된 파일 목록이 생성됩니다. Grawity의 답변은 이미 정시에 필터링 할 수 있음을 보여 주므로 삭제 된 파일로만 제한 할 수 있습니다.
Hennes

11

Inotify Tools를 설치해야합니다 . 그런 다음 inotifywait명령을 사용 하여 지정된 디렉토리에서 발생하는 이벤트를 청취 할 수 있습니다 .

특히 삭제 된 파일과 폴더를보고 싶다면 이것을 사용하십시오.

inotifywait -m -r -e delete dir_name

이 출력을 일부 파일에 기록하십시오.

이것이 문제를 해결하기를 바랍니다.


1
가장 좋은 접근 방식처럼 들립니다. iwatch 라는 유망한 cli-app / daemon 이 있습니다. 올바른 도구를 사용하여 문제를 해결하기위한 +1
Sampo Sarrala

ravi, @SampoSarrala- /마운트 / 마운트 해제 드라이브를 고려 하여 루트 에있는 파일을보고자하는 경우에 적용 할 수 있습니까? 이 경우 삭제 로그를 유지할 수있는 유일한 것은 연결되는 커널 모듈 일 것입니다 unlink( stackoverflow.com/questions/8588386/… 참조 ). 또한 man inotifywait"-재귀 : 경고 : ... 큰 나무를보고있는 동안이 옵션은 시간이 오래 걸릴 수 있습니다. 또한, .... 사용자 당 최대 inotify 시계에 도달합니다. 기본 최대 값은 8192입니다. "
sdaau

@sdaau dmesg [| tail]가 요구하는 [최근] 마운트 / 마운트 해제를 보여 주어야합니다.
SeldomNeedy

해당 프로세스에서 파일을 삭제 한 프로세스 (예 : cron 작업)를 찾는 방법이 있는지 궁금합니다. 파일이 신비적으로 사라지는 사례를
보아라

0

Linux는 일반적으로 rm명령 줄에서 사용한다고 가정하고 파일을 제거하기 전에 확인을 요구하지 않습니다 .

지난 30 분 동안 수정 된 파일을 찾으 touch --date="HH:MM" /tmp/reference려면 30 분 전 (HH : MM은 30 분 전)의 타임 스탬프를 가진 reference라는 파일을 작성하는 데 사용 하십시오. 그런 다음 find /home/sam/officedocuments -newer /tmp/reference참조보다 최신 파일을 찾는 데 사용 하십시오.

GUI 도구를 사용하여 파일을 삭제 한 경우 여전히 "휴지통"에있을 수 있습니다. 데스크탑 환경에 사용중인 내용에 따라 다릅니다. 당신이 사용하는 경우 rm명령 줄에서, 다음에 언급 된 유틸리티 중 하나 노력 이 답변을 . (그 링크에 대한 @Sampo의 팁이 있습니다.)


"영원히 사라졌다" 고 말하지 마십시오 . 다른 답변에 대한 의견을보십시오. 지금은이 같은 느낌 : xkcd.com/386을 :)
삼포 Sarrala
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.