我对linux bash脚本中的循环有一个小问题。
我有一个包含10000个文件的文件夹。我写了for循环来列出10000个文件中的100个文件。
For a in ~/Desktop/folder/*.txt
Do
Echo $a
Done
但是,我需要列出文件夹中最大的100个文件,而不是前100个文件,具体取决于字母。
答案 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