새 파일을 디렉터리에 로그인

새 파일을 디렉터리에 로그인

최근에 생성된 파일에 대해 알려줄 수 있는 도구가 있나요?

계층적 파일 시스템을 사용하는 여전히 일반적인 방법은 파일을 다른 위치에 저장하는 것이 어렵기 때문에 때로는 콘텐츠를 일반 주제 폴더로 분류하고 때로는 디렉터리와 같이 콘텐츠와 직접적으로 관련된 위치로 정렬합니다. 도구.

내가 물어볼 수 있는 도구는 다음과 같습니다.

  • 생성/보관기간

  • 파일 형식/이름/확장자

  • 제외/포함할 디렉터리의 블랙/화이트 목록

답변1

이러한 작업을 지원하는 명령줄 도구는 다음과 같습니다 find.

find /path -iname '*.ext' # search for extension (don't forget the quotes)
find /path -mtime n       # search for last modified `n*24h` ago
find /path -atime n       # search for last accessed `n*24h` ago
find /path -newer ref     # newer than ref
find /path -size +100M    # larger than 100MB
find /path -perm 664      # example to search for files with a specific permission
find /path -type <t>      # search for file `f`, directory `d`, symbolic link `l` ...

파일 형식에 대한 자세한 내용을 문의하려면 다음을 실행하는 것이 좋습니다.

find /path -type f -exec file '{}' \; | grep 'Vorbis audio'

.find

답변2

inotify즉시 알아야 할 경우 다음을 사용하십시오.

새로 생성된 파일에 대해 즉시 알아야 하는 경우 실제로 inotifyLinux에서 API를 사용하여 디렉터리 또는 디렉터리 트리에 파일이 생성될 때 이벤트를 기다릴 수 있습니다(참고자료 참조 man 7 inotify).

다른 솔루션의 일부와 결합하여 파일에 대한 자세한 정보를 찾을 수 있습니다.

파일 생성 관찰 예

다음으로 명령이 inotifywait -e create -m /path시작됩니다. 이 줄 다음에 기다리는 동안 Watches established.다른 터미널에 새 파일이 생성됩니다.foo/path

term1$ inotifywait -e create -m /path
Setting up watches.
Watches established.

term2$ touch /path/foo

term1$ inotifywait -e create -m /path
Setting up watches.
Watches established.
./ CREATE foo
^C

(처음 3줄은 위와 같이 반복됩니다)

-m( --monitor) 옵션이 없으면 inotifywait첫 번째 이벤트 이후에 중지되며 이는 스크립트 루프에 유용합니다.

관련 정보