728x90
반응형
질문 : 하위 디렉토리 및 시간이있는 디렉토리에서 최근 수정 된 파일을 재귀 적으로 찾고 나열하는 방법
- 운영 체제 : Linux
- 파일 시스템 유형 : ext3
- 선호하는 솔루션 : Bash (스크립트 / 한 줄짜리), Ruby 또는 Python
여러 하위 디렉토리와 파일이있는 여러 디렉토리가 있습니다. 모든 첫 번째 수준 디렉터리가 그 안에 최근 생성 / 수정 된 파일의 날짜와 시간 옆에 나열되는 방식으로 구성된 이러한 모든 디렉터리의 목록을 만들어야합니다.
명확히하기 위해 파일을 터치하거나 하위 디렉터리 수준 아래로 내용을 수정하면 첫 번째 수준 디렉터리 이름 옆에 해당 타임 스탬프가 표시되어야합니다. 다음과 같은 구조의 디렉토리가 있다고 가정합니다.
./alfa/beta/gamma/example.txt
example.txt
파일의 내용을 수정합니다 alfa
옆에 epoch가 아닌 사람이 읽을 수있는 형식으로 표시된 시간이 필요합니다. xargs
, sort
등을 사용하여 몇 가지 시도했지만 파일을 몇 수준 아래로 생성 / 수정할 때 'alfa'의 파일 시스템 타임 스탬프가 변경되지 않는다는 문제를 해결할 수 없습니다.
답변
이걸로 해봐:
#!/bin/bash
find $1 -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head
재귀 적으로 스캔을 시작해야하는 디렉토리 경로로 실행합니다 (공백이있는 파일 이름 지원).
파일이 많으면 반환하는 데 시간이 걸릴 수 있습니다. xargs
대신 사용하면 성능이 향상 될 수 있습니다.
#!/bin/bash
find $1 -type f -print0 | xargs -0 stat --format '%Y :%y %n' | sort -nr | cut -d: -f2- | head
조금 더 빠릅니다.
출처 : https://stackoverflow.com/questions/5566310/how-to-recursively-find-and-list-the-latest-modified-files-in-a-directory-with-s
728x90
반응형
'개발관련 > other' 카테고리의 다른 글
LINQ에서 GroupBy 여러 열을 수행하는 방법 (0) | 2021.11.19 |
---|---|
딥 클로닝 개체 (0) | 2021.11.18 |
SQL Management Studio에서 다른 포트 번호를 지정하는 방법 (0) | 2021.11.18 |
Xcode 7 오류 :“Missing iOS Distribution signing identity for ...” (0) | 2021.11.17 |
grep을 사용하여 폴더 내에서 단어를 찾는 방법 (0) | 2021.11.17 |