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

Ano*_*use 3 bash terminal

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

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

files=(/path/to/files)
echo "${files[773]}"
Run Code Online (Sandbox Code Playgroud)

Cha*_*ffy 7

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

files=( /path/to/files/* )
echo "${files[772]}"
Run Code Online (Sandbox Code Playgroud)

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

printf '%q\n' "${files[772]}"
Run Code Online (Sandbox Code Playgroud)

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

files=( "$dir"/* )
Run Code Online (Sandbox Code Playgroud)