0

I have a small question regarding for loops in linux bash scripts.

I have a folder that contains 10000 files. I wrote for loop to list 100 files from the 10000.

For a in ~/Desktop/folder/*.txt
Do

    Echo $a

Done

However, I need to list the biggest 100 files in the folder and not the first 100 files depending on alphabet.

4

2 回答 2

2

为什么要使用 for 循环?如果您只想查看 100 个最大的文件,请执行以下操作:

ls -S | head -n 100
于 2013-02-04T04:18:12.087 回答
0

如果您只是为了获取文件而执行循环,请注意有一个工具可以做到这一点:ls.

有关适合您问题的命令,请参见 ls 的手册页:man ls

要回答您的问题:

您可以使用 的输出ls -S,它按大小对文件进行排序以循环遍历:

ls -S *.txt | while read file; do 
    echo $file
done

要限制文件的数量,您可以使用head. 以下示例将为您提供输出的前 100 行ls

ls *.txt | head -n 100
于 2013-02-04T04:18:00.983 回答