linux脚本for循环

时间:2013-02-04 04:08:55

标签: linux

我对linux bash脚本中的循环有一个小问题。

我有一个包含10000个文件的文件夹。我写了for循环来列出10000个文件中的100个文件。

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

    Echo $a

Done

但是,我需要列出文件夹中最大的100个文件,而不是前100个文件,具体取决于字母。

2 个答案:

答案 0 :(得分:2)

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

ls -S | head -n 100

答案 1 :(得分:0)

如果你只是为了获取文件而进行循环,请注意有一个工具:ls

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

回答你的问题:

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

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

要限制文件数量,您可以使用head。以下示例将从ls的输出中输出前100行。

ls *.txt | head -n 100