包含许多文件的文件夹列表有问题

包含许多文件的文件夹列表有问题

在 ubuntu 中,我有一个文件夹,其中包含许多 (~10M) .txt 文件(每个大约 1-2KB)。文件夹本身并不大(大约 400MB),并且不包含子文件夹,只有 .txt 文件。我需要列出它,但没有成功。(不过,我可以用 计算文件数量wc -l)问题是:有没有办法以某种方式或其他方式拆分文件夹,而无需调用ls使用的方法?

答案1

您应该能够使用find以下命令列出文件:

find .

使用*或类似的东西作为命令参数必然会给你一个“参数列表太长”的错误,但它可能像 Andrew Stubbs 上面建议的那样,在 shell 循环中工作。

如果没有,您可以将find上面的输出提供给while循环,以便处理单个文件:

find . | while read filename; do
    dosomething $name
done

具有适当的“做某事”价值观。

要“拆分”文件夹,您可以根据文件名称将文件移动到子目录,例如,如下所示:

mkdir _a _b _c _d _e _f _g _h _i _j _k _l _m _n _o _p _q _r _s _t _u _v _w _x _y
find . | while read filename; do
    case $filename in
        a*) mv $filename _a;;
        b*) mv $filename _b;;

[...]

        z*) mv $filename _z;;
    esac
done

当然,更复杂的方案也是可能的。

相关内容