如何根据数字顺序查找文件夹

如何根据数字顺序查找文件夹

我正在处理大量的图像数据,它如下

/root/folder1
/root/folder2
/root/folder3
/root/folder4
...

但实际上,子文件夹名称并没有明确地用数字写出。

那么,如果我想找到第 230 个文件夹,我必须逐个计数。我该如何巧妙地找到它?

谢谢!

答案1

由于我们不知道您如何排序,我只是假设它是按字母顺序排列的,在这种情况下,在终端中运行以下命令:

cd /enter/dir/here
ls | sort | head -n 230 | tail -n 1

这将按ls字母顺序排序,仅获取前 230 个结果,然后获取这 230 个结果中的最后一个。

答案2

我通常使用bash,但这是您可能需要考虑切换到的任务之一,zsh以便您可以使用其glob 限定符

print dir/*(/on[230])

解释:

  • /:匹配目录
  • on:按升序排序o订购name (降序排列,使用大写O
  • [230]:将结果限制在给定的范围内

范围限定符更一般的形式为[m,n]- 您也可以[230,230]在这种情况下使用。


如果您需要执行此操作,bash则需要外部工具:这是一种对任何文件名(甚至是带有嵌入换行符的文件名)都应该安全的方法:

printf '%s\0' dir/*/ | sort -z | awk -vRS='\0' 'NR==230 {print; exit}'

答案3

假设您使用的是 ubuntu,因此 nautilus 是您的文件浏览器。如果是这样,则按 CTRL+F 并键入文件夹名称。但正如您所说,文件夹不是明确以数字表示的,但您可以在右上角进行更改以按详细信息而不是图标显示文件夹,然后选择按日期修改。

相关内容