디렉토리가 있습니다. /home/user/
이 디렉토리에있는 모든 파일 (하위 디렉토리에있는 파일 포함)을 나열하고 마지막으로 수정 된 날짜별로 정렬하려면 어떻게해야합니까?
답변
당신이 사용할 수있는:
ls -Rt
어디 -R
수단 재귀 와 (하위 디렉토리 포함) -t
“일종의 마지막으로 수정 한 날짜”라는 뜻입니다.
수정 된 날짜별로 정렬 된 파일 목록을 보려면 다음을 사용하십시오.
ls -l -Rt
이를 위해 별칭을 만들 수도 있습니다.
alias lt='ls -lht'
lt
어디는 -h
보다 읽기 쉬운 출력을 제공합니다.
답변
모든 파일 을 수정 날짜 별로 정렬 하여 파일이 있는 디렉토리를 표시하지만 디렉토리별로 그룹화하지 않은 마스터 목록을 원하는 경우 다음 을 사용할 수 있습니다.
find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
결과는 다음과 같습니다. ls -l
.
-rw-r--r-- 1 루트 루트 3892 08/11/2009 11:03:36 /usr/share/man/man1/xmllint.1.gz -rw-r--r-- 1 루트 루트 22946 08/13/2009 11:59:20 /usr/share/man/man1/curl.1.gz -rw-r--r-- 1 루트 루트 728 08/17/2009 12:06:33 /usr/share/man/man1/thunderbird.1.gz -rw-r--r-- 1 루트 루트 873 08/18/2009 10:52:47 /usr/share/man/man1/libgnutls-config.1.gz -rw-r--r-- 1 루트 루트 2552 2009-08-19 02:00:34 /usr/share/man/man3/Purple.3pm.gz -rw-r--r-- 1 루트 루트 9546 2009-08-19 02:02:00 /usr/share/man/man1/pidgin.1.gz -rw-r--r-- 1 루트 루트 2201 08/19/2009 02:02:46 /usr/share/man/man3/Pidgin.3pm.gz -rw-r--r-- 1 루트 루트 926 08/19/2009 02:03:05 /usr/share/man/man1/purple-remote.1.gz -rw-r--r-- 1 루트 루트 18052 08/19/2009 04:11:47 /usr/share/man/man1/mono.1.gz -rw-r--r-- 1 개의 루트 루트 1845 08/19/2009 04:11:47 /usr/share/man/man5/mono-config.5.gz
맥 OS X
Mac OS X을 사용하는 사용자의 경우 BSD find에서 -printf 옵션을 사용할 수 없습니다 (이 오류가 발생합니다 🙂find: -printf: unknown primary or operator
. 다행스럽게도 Homebrew를 통해 GNU를 설치할 수 있습니다 ( Fink 및 Macports에 대한 옵션도 있어야 함 ).
brew install findutils
설치 후 GNU 찾기를 gfind
. 따라서 위의 줄을 다음과 같이 변경하기 만하면됩니다.
gfind . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
답변
MAC OSX 2019
언제 생성되었는지 신경 쓰지 않지만 목록을 정렬하려면 다음 명령을 사용하십시오.
==> ls -t
주문하고 날짜 및 사용자 정보를 보려면이 명령을 사용하십시오.
===> ls -lt
답변
를 들어 zsh
사용자, 당신은 또한 사용할 수 글로브 한정자를 (또한 문서화 man zshexpn
) :
echo *(om)
어디는 o
의미 , 정렬 순서까지 와 m
의 약자 최종 수정 시간 .
이것은 for 루프 또는 다른 명령에서 사용할 때 유용 할 수 있습니다.
for file in *(^om); do
[ -e "$file" ] || continue
# do something with file orderer from least recently modified to last modified
done
또는 다른 glob 한정자와 연결 :
last_modified_file=(*(om[1]))