최근 수정된 파일 10개를 어떻게 찾을 수 있나요?

최근 수정된 파일 10개를 어떻게 찾을 수 있나요?

저는 루트 폴더에 있고 이 폴더에서 마지막으로 수정된 파일 10개를 찾아야 합니다. 강사가 말한 대로 -mtime을 입력할 때마다 10일이 주어집니다. 지난 10일 분량이 아닌 최근 10개의 수정된 파일이 필요합니다. 나는 내 시간 찾기를 시도했습니다. 내 시간은 꼬리로 연결되었습니다. 지난 10일 동안 수정된 모든 파일의 긴 목록을 얻습니다. 루트 디렉터리의 마지막 10개 수정 파일만 필요합니다.

답변1

ls -t | head파일 이름에 개행 문자가 포함되지 않는 한 작동합니다.

ls -t최신 파일부터 시간별로 정렬합니다. head상위 10개 라인만 유지합니다.

더 자세한 내용을 원하면 를 사용할 수 있지만 ls -lt전체 크기 앞에 추가 줄이 추가되므로 가 필요합니다 ls -lt | head -n 11.

숨겨진 파일을 포함하려면 를 사용할 수 있습니다 ls -At | head. ( ls -A또는 --almost-allGNU ls의 경우 .및를 제외한 숨겨진 파일이 포함됩니다 ...)

이는 일반 파일뿐만 아니라 디렉터리를 포함하여 모든 유형의 최신 10개 파일을 제공합니다.

답변2

에서 zsh현재 작업 디렉토리 또는 그 이하의 가장 최근에 마지막으로 수정된 10개의 일반 파일에 대해 다음을 수행합니다.

ls -ldt -- **/*(D.om[1,10])

다른 쉘에서는 최근 GNU 시스템을 사용한다고 가정합니다.

find . -type f -printf '%T@:%P\0' |
  LC_ALL=C sort -zrn |
  LC_ALL=C sed -z 's/^[^:]*://;10q' |
  xargs -r0 ls -ltd --

하위 디렉터리의 파일을 고려하지 않으려면 **/in 을 제거 zsh하거나 after -maxdepth 1에 추가하세요 .find.

숨겨진 파일을 제외하려면 D에서 glob 한정자를 제거 zsh하거나 행 find을 다음으로 변경합니다.

LC_ALL=C find . -name '.?*' -prune -o -type f -printf '%T@:%P\0' |

또는 하위 디렉터리의 파일도 제외하는 경우:

LC_ALL=C find . -maxdepth 1 ! -name '.*' -type f -printf '%T@:%P\0' |

이는 파일 경로에 어떤 문자 또는 비문자가 포함될 수 있는지에 대해 가정하지 않습니다.

관련 정보