查找每个目录的最大文件
finding largest file for each directory
我目前无法列出特定目录中 each 子目录的最大文件。
通过输入以下命令(在 Debian 中),我成功地列出了目录中最大的文件:
find . -type f -printf "%p\n" | ls -rS |tail -1
我希望在 shell 文件 (searchHelper.sh) 和 运行 中输入命令,以下命令将 return 每个子目录的预期文件名:
find -type d -execdir ./searchHelper.sh {} +
不幸的是,它不是每个子目录的最大文件 return,而是其他东西。
可以提示我获取每个子目录的最大文件的文件名(带绝对路径)吗?
非常感谢
试试这个安全且经过测试的版本:
find "$(pwd)" -depth -type f -printf "d%h[=10=]%s %p[=10=]" | awk -v RS="[=10=]" '
/^d/ {
directoryname=substr([=10=],2);
}
/^[0-9]/ {
if (!biggestfilesizeindir[directoryname] || biggestfilesizeindir[directoryname] < ) {
biggestfilesizeindir[directoryname]=;
biggestfilesizefilenameindir[directoryname]=substr([=10=],index([=10=]," ")+1);
}
}
END {
for (directoryname in biggestfilesizefilenameindir) {
print biggestfilesizefilenameindir[directoryname];
}
}'
即使名称包含特殊字符也是安全的:'
"
\n
等
我目前无法列出特定目录中 each 子目录的最大文件。 通过输入以下命令(在 Debian 中),我成功地列出了目录中最大的文件:
find . -type f -printf "%p\n" | ls -rS |tail -1
我希望在 shell 文件 (searchHelper.sh) 和 运行 中输入命令,以下命令将 return 每个子目录的预期文件名:
find -type d -execdir ./searchHelper.sh {} +
不幸的是,它不是每个子目录的最大文件 return,而是其他东西。
可以提示我获取每个子目录的最大文件的文件名(带绝对路径)吗?
非常感谢
试试这个安全且经过测试的版本:
find "$(pwd)" -depth -type f -printf "d%h[=10=]%s %p[=10=]" | awk -v RS="[=10=]" '
/^d/ {
directoryname=substr([=10=],2);
}
/^[0-9]/ {
if (!biggestfilesizeindir[directoryname] || biggestfilesizeindir[directoryname] < ) {
biggestfilesizeindir[directoryname]=;
biggestfilesizefilenameindir[directoryname]=substr([=10=],index([=10=]," ")+1);
}
}
END {
for (directoryname in biggestfilesizefilenameindir) {
print biggestfilesizefilenameindir[directoryname];
}
}'
即使名称包含特殊字符也是安全的:'
"
\n
等