如何打印目录中带有数字索引的文件?

如何打印目录中带有数字索引的文件?

我想打印目录中带有编号的所有文件,以便每个文件前面都有一个编号,如下所示:

  1. 我的文件.txt
  2. 另一个文件
  3. ETC

然后我想稍后引用这些文件,如下所示:

mv 1 2 3 目录

我怎样才能按照数字顺序引用文件?

答案1

您可以将文件名放在索引数组中,并使用数组索引,例如

shopt -s nullglob
files=( * )

for i in ${!files[@]}; do 
  printf '%d. %s\n' $i "${files[i]}"
done

要通过索引引用文件n,请使用"${files[n]}",其中n被评估为数字表达式,例如"${files[3]}"n=3; echo "${files[n]}"。请注意,bash 中的数组索引从 0 开始。

相关内容