我的要求是获取子文件夹中最近的 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
如果您的意思是所有目录中最近修改的 2 个常规文件,其中包含 GNUfind
和xargs
最近的 GNU sed
:
find dir1 dir2... -mindepth 1 -maxdepth 1 -type f -printf '%T@:%p\0' |
sort -rzn | sed -z 's/[^:]*://;2q' | xargs -r0 ls -ld --