我需要找到最大的文件
- 仅应列出一个文件
- 搜索应在给定的目录和子目录中进行
输出应显示带有文件名的文件的绝对路径
find "$PARAM" -type f | xargs ls -1S | head -n 1
有效,但出现类似以下错误
ls:无法访问 Over:没有这样的文件或目录
答案1
不要解析ls
. 让find
这个为你完成工作:
find "$PARAM" -type f -printf "%s\t%p\n" | sort -n | tail -n 1 | cut -f 2-
没有 find,我们可以使用 bash 的递归通配符:
shopt -s globstar nullglob
stat -c $'%s\t%F\t%n' ** \
| awk -F'\t' '$2 == "regular file"' \
| sort -n \
| tail -n 1 \
| cut -f 3-
OSX 上的 stat 将具有不同但等效的 stat 选项,并且可能会为“常规文件”输出不同的字符串。