从linux目录中读取文件的顺序

时间:2012-08-08 18:54:47

标签: linux bash shell linux-kernel

如果在目录中,假设有100个文件的名称如file.pcap1,file.pcap2,file.pcap3,.....,file.pcap100。在shell脚本中,为了逐个读取这些文件,我写了一行代码:

for $file in /root/*pcap*
do
  Something
done

读取文件的顺序是什么?它们是按照文件名末尾的数字递增顺序读取的吗?对于所有类型的Linux机器,情况是否相同?

2 个答案:

答案 0 :(得分:2)

按文件名排序。就像默认的ls(没有标志)一样。

此外,您需要删除foreach中的$

for file in /root/*pcap*

答案 1 :(得分:1)

POSIX shell returns paths sorted using current locale

  

如果模式匹配任何现有的文件名或路径名,则   模式应替换为那些文件名和路径名排序   根据当前区域设置中有效的整理顺序

这意味着pcap10出现在pcap2之前。您可能需要自然排序顺序,例如Python analog of natsort function (sort a list using a “natural order” algorithm)