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

时间:2014-09-02 19:35:53

标签: bash terminal

我在文件夹的773rd文件中收到解析错误。是否可以在bash中打印文件的名称?

我已尝试使用它来打印它,但它会返回一个空白。

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

1 个答案:

答案 0 :(得分:6)

非常接近,但你需要实际做一个glob来将列表收集到你的数组中,而不是只有一个列表只包含一个元素(父目录):

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

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

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

如果您的路径来自变量,请务必引用其扩展,但不是的glob字符:

files=( "$dir"/* )