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"/*)
如果它不是772的第七百七十三文件? – 2014-09-02 19:38:35
@EtanReisner,事实上,它应该...... **如果**问的人在问题本身中使用1索引的数学。 – 2014-09-02 19:38:54
(其中...是的,让人们为自己学习这些东西相当有意义,无论如何有效;我已经做出了适当的修正) – 2014-09-02 19:40:29