Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 筛选ls输出以仅显示小于特定大小的目录/文件_Bash - Fatal编程技术网

Bash 筛选ls输出以仅显示小于特定大小的目录/文件

Bash 筛选ls输出以仅显示小于特定大小的目录/文件,bash,Bash,我正在使用ls-lRa递归地遍历我的文件结构 然而,当我访问大目录时,需要花费很长时间来浏览它们 如何过滤此ls-lRa命令,以便如果ls所在的目录超过某个大小,那么它将只使用ls-la,而不会浪费时间递归地遍历目录 我想维护ls-la格式 一些基本伪代码可能是: for each fileSize do if fileSize is greater than x then ls -lRa on that directory else ls -la dir on that directory

我正在使用
ls-lRa
递归地遍历我的文件结构

然而,当我访问大目录时,需要花费很长时间来浏览它们

如何过滤此
ls-lRa
命令,以便如果ls所在的目录超过某个大小,那么它将只使用
ls-la
,而不会浪费时间递归地遍历目录

我想维护
ls-la
格式

一些基本伪代码可能是:

for each fileSize
do
if fileSize is greater than x
then ls -lRa on that directory 
else 
ls -la dir on that directory
fi
done
在本例中,如何获取fileSize变量

我知道我可以使用
-ls-la | awk'{print$5}'
,但我如何执行检查,以查看此数字是否小于/大于大小所属的目录?

你可以,所以试试这样:

for dir in ./*/; do
    count="$(find "$dir" -printf '.' | wc -c)"
    if [[ $count -gt $x ]]; then
        ls -lRa "$dir"
    else
        ls -la "$dir"
    fi
done