Linux 查找每个目录的最大文件
目前,我一直在列出特定目录中每个子目录的最大文件。 通过输入以下命令(在Debian中),我成功地列出了目录中最大的文件: 我希望在shell文件(searchHelper.sh)中输入该命令,并运行以下命令将返回每个子目录的预期文件名:Linux 查找每个目录的最大文件,linux,shell,find,subdirectory,Linux,Shell,Find,Subdirectory,目前,我一直在列出特定目录中每个子目录的最大文件。 通过输入以下命令(在Debian中),我成功地列出了目录中最大的文件: 我希望在shell文件(searchHelper.sh)中输入该命令,并运行以下命令将返回每个子目录的预期文件名: find -type d -execdir ./searchHelper.sh {} + 不幸的是,它没有返回每个子目录的最大文件,而是返回其他文件 我可以得到一个提示来获取每个子目录中最大文件的文件名(带绝对路径)吗 非常感谢您提前试一试这个安全且经过测试
find -type d -execdir ./searchHelper.sh {} +
不幸的是,它没有返回每个子目录的最大文件,而是返回其他文件
我可以得到一个提示来获取每个子目录中最大文件的文件名(带绝对路径)吗
非常感谢您提前试一试这个安全且经过测试的版本:
find "$(pwd)" -depth -type f -printf "d%h\0%s %p\0" | awk -v RS="\0" '
/^d/ {
directoryname=substr($0,2);
}
/^[0-9]/ {
if (!biggestfilesizeindir[directoryname] || biggestfilesizeindir[directoryname] < $1) {
biggestfilesizeindir[directoryname]=$1;
biggestfilesizefilenameindir[directoryname]=substr($0,index($0," ")+1);
}
}
END {
for (directoryname in biggestfilesizefilenameindir) {
print biggestfilesizefilenameindir[directoryname];
}
}'
find“$(pwd)”-depth-type f-printf“d%h\0%s%p\0”| awk-v RS=“\0”
/^d/{
directoryname=substr($0,2);
}
/^[0-9]/ {
如果(!biggestfilesizeindir[directoryname]| | biggestfilesizeindir[directoryname]<$1){
biggestfilesizeindir[directoryname]=1美元;
biggestfilesizefilenameindir[directoryname]=substr($0,index($0,“”)+1);
}
}
结束{
for(biggestfilesizefilenameindir中的directoryname){
打印biggestfilesizefilenameindir[directoryname];
}
}'
这是安全的,即使名称包含特殊字符:
“
”
\n
等。您需要为此使用查找
吗?不……我认为这是一个很好的可能性……欢迎任何提示
find "$(pwd)" -depth -type f -printf "d%h\0%s %p\0" | awk -v RS="\0" '
/^d/ {
directoryname=substr($0,2);
}
/^[0-9]/ {
if (!biggestfilesizeindir[directoryname] || biggestfilesizeindir[directoryname] < $1) {
biggestfilesizeindir[directoryname]=$1;
biggestfilesizefilenameindir[directoryname]=substr($0,index($0," ")+1);
}
}
END {
for (directoryname in biggestfilesizefilenameindir) {
print biggestfilesizefilenameindir[directoryname];
}
}'