Bash:如何打印文件夹中第n个文件的文件名

问题描述:

我在文件夹的773rd文件中收到解析错误。是否有可能在bash中打印文件的名称?Bash:如何打印文件夹中第n个文件的文件名

我试过用它来打印它,但它返回一个空格。

files=(/path/to/files) 
echo "${files[773]}" 

非常接近,但实际上你需要做一个水珠收集清单到您的阵列,而不是只有一个元素(父目录)的列表:

files=(/path/to/files/*) 
echo "${files[772]}" 

如果您想要以一种可读的方式表示非打印字符的方式表示文件名,echo是错误的工具。相反,考虑:

printf '%q\n' "${files[772]}" 

如果你的路径是从一个变量来了,一定要引用它的扩张,但水珠字符:

files=("$dir"/*) 
+0

如果它不是772的第七百七十三文件? – 2014-09-02 19:38:35

+1

@EtanReisner,事实上,它应该...... **如果**问的人在问题本身中使用1索引的数学。 – 2014-09-02 19:38:54

+1

(其中...是的,让人们为自己学习这些东西相当有意义,无论如何有效;我已经做出了适当的修正) – 2014-09-02 19:40:29