내 요구 사항은 하위 폴더에 가장 최근 파일 2개를 가져오는 것입니다.
각 폴더에 10개의 파일이 포함된 10개의 폴더가 있으며 10개 폴더 모두에서 가장 최근 파일 2개를 가져와야 합니다.
스크립트나 명령어를 제안해주세요.
답변1
각 디렉토리에서 가장 최근에 수정된 2개의 일반 파일을 참조하는 경우, 여기서 zsh
:
dirs=(dir1 dir2...)
files=()
for dir ($dirs) files+=($dir/*(DN.om[1,2]))
(($#files)) && ls -ld -- $files
find
GNU 와 xargs
최신 GNU를 포함하는 모든 디렉토리에서 가장 최근에 수정된 2개의 일반 파일을 의미하는 경우 sed
:
find dir1 dir2... -mindepth 1 -maxdepth 1 -type f -printf '%T@:%p\0' |
sort -rzn | sed -z 's/[^:]*://;2q' | xargs -r0 ls -ld --