최근에 생성한 파일을 찾고 싶지만 파일에 대한 내용이 전혀 기억나지 않고 가능한 깊이의 간접 디렉터리에 있다고 추측만 할 뿐입니다.
- 디렉토리의 모든 하위 디렉토리의 시간을 확인했지만 모두 파일을 생성한 시간보다 오래된 시간을 가지고 있습니다. 디렉토리의 파일이 업데이트될 때 디렉토리의 시간이 업데이트되지 않는 이유를 알고 싶습니다.
- 당신이라면 파일을 어떻게 찾겠습니까?
find
몇 가지 시간 옵션을 사용하여 ? 감사해요.
답변1
나는 사용할 것이다
find <PARENT_DIR> -type f -mtime 1
1
마지막으로 수정된 일수( "X일 미만" 또는 "X일 초과"를 의미하기 위해 앞에 -
또는 를 붙일 수 있음 +
): 따라서 지난 3일 동안 파일을 수정하려면, 당신은 할 것이다-mtime -3
답변2
다른 파일과 마찬가지로 디렉터리 수정 시간(방법을 참고하세요.목차~라고 불리는목차(목록이름/숫자전화번호부와 같은 매핑) 대신폴더)언제든지콘텐츠수정되었습니다.
즉, 파일이 추가(링크), 삭제(링크 해제)되거나 이름이 변경된 경우입니다.
파일은 여러 디렉터리에 연결될 수 있습니다. 시스템은 어떤 파일이 링크되어 있는지에 대한 실시간 목록을 유지하지 않습니다(쓰기를 위해 주어진 열린 파일 설명자에 대한 어떤 디렉토리도 추적하지 않습니다).길파일을 열려면(구성 요소는 언제든지 이름을 바꿀 수 있음), 그렇다면 파일이 연결된 모든 디렉터리와 모든 상위 항목의 수정 시간을 업데이트합니다. /
이는 결국 수행됩니다.
종종 유일한 옵션은 파일 시스템에 있는 모든 파일의 수정 시간을 찾는 것입니다.
당신은 할 수사용법은 find
코렌틴에 나와 있는 것과 같습니다., 또는 이러한 모든 디렉토리를 읽지 않으려면 inode 테이블에 있는 모든 inode의 수정 시간을 확인할 수 있습니다(비록 이 작업을 수행할 수 있는 도구는 모르지만).
일부 파일 시스템은 btrfs
최근에 수정된 파일에 대한 단서를 제공할 수 있습니다.
$ sudo btrfs sub find-new / -1
transid marker was 2273028
$ sudo btrfs sub find-new / 2273020
inode 60319801 file offset 212992 len 4096 disk start 8350875648 offset 0 gen 2273024 flags NONE root/screenlog.2
inode 60319801 file offset 217088 len 28672 disk start 8403632128 offset 0 gen 2273023 flags NONE root/screenlog.2
inode 61045822 file offset 360448 len 4096 disk start 1111568384 offset 0 gen 2273022 flags NONE var/log/apache2/access.log
inode 61045835 file offset 2326528 len 8192 disk start 7824994304 offset 0 gen 2273024 flags NONE var/log/syslog
inode 61045840 file offset 57344 len 8192 disk start 1517305856 offset 0 gen 2273023 flags NONE var/log/kern.log
[...]