마지막 수정 날짜를 기준으로 디렉터리의 파일을 반복적으로 정렬합니다.
디렉토리에서 많은 파일을 수정했으며 마지막 수정 날짜를 기준으로 정렬하여 파일이 무엇인지 알고 싶습니다. 일부 확장자를 제외하고 싶습니다.
또한 svn 디렉토리에 .svn 파일이 많이 있는데 이를 정렬 방식으로 표시하고 싶지 않습니다.
답변1
find -printf "%TY-%Tm-%Td %TT %p\n" | sort -n
당신에게 다음과 같은 것을 줄 것입니다
2014-03-31 04:10:54.8596422640 ./foo
2014-04-01 01:02:11.9635521720 ./bar
답변2
디렉터리 구조를 평면화하려면(따라서 모든 디렉터리의 모든 파일을 날짜별로 정렬하고 파일이 있는 디렉터리를 무시함) find
@yeti가 제안한 - 접근 방식을 사용하는 것이 좋습니다. 디렉토리 구조를 유지하려면 시도해 볼 수 있습니다
$ ls -ltR /path/to/directory
디렉토리를 기준으로 정렬됩니다.
답변3
Bash에서는 shopt -s globstar
먼저 실행하십시오. ksh93에서 set -o globstar
먼저 실행하십시오. zsh에서는 이미 설정되어 있습니다.
ls -dltr **/*
시스템의 명령줄 길이 제한을 초과하는 파일이 너무 많으면 오류가 반환됩니다. zsh에서는 다음을 사용할 수 있습니다.
print -rl -- **/*(Om)
답변4
GNU find를 사용한다고 가정하고 다음을 시도해 보십시오.
find $SOMEPATH -exec stat -c '%Y %n' '{}' + | sort -n