我试图获取超过几天的文件,并根据其大小及其所有信息(大小、完整路径等 - 与 提供的类似内容ls
)按降序排列它们。
虽然我能够找到较旧的文件:
find . -mtime +10
我无法列出所需的信息。
答案1
前提是你的文件路径不要包含换行符:
find . -mtime +10 -printf "%s %n %m %u %g %t %p" \( \
-type l -printf ' -> %l\n' -o -printf '\n' \) | sort -k1,1 -n
看find
手动的, 部分Actions
。
答案2
此命令仅使用 和find
的POSIX 功能ls
:
find . -type f -mtime +10 -exec ls -lS {} +
然而,它可能ls
多次调用,如果有很大当前目录(或递归子目录)中与主目录匹配的文件数-mtime +10
。
当然,如果它调用ls
多次,则排序只会在每次ls
执行中完成,而不是在多个执行中完成。
不过,对于合理数量的文件来说,这可能是您的最佳选择。
答案3
和zsh
:
ls -ldrS -- **/*(m+10)
或者避免双重排序(通过 zsh 按名称排序,通过 ls 按大小排序):
ls -ldrS -- **/*(m+10oN) # disable zsh sorting
或者(如果您ls
支持-U
未排序):
ls -ldU -- **/*(m+10oL) # disable ls sorting and have zsh sort by size
D
如果您还想查看隐藏文件,请添加glob 限定符。
答案4
尝试这个:
find ./ -type f -mtime +10 -exec ls -ln {} \; | sort -r -k 5 -g