我想打印目录中带有编号的所有文件,以便每个文件前面都有一个编号,如下所示:
- 我的文件.txt
- 另一个文件
- 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 开始。