我想将目录中的所有文件重命名为序号:
1.txt
2.txt
3.txt
等等……
这是我目前使用的代码:
ls | cat -n | while read n f; do mv "$f" "$n.txt"; done
代码确实有效,但我需要从一个特定的数字开始。例如,我可能想从数字 49
而不是数字 1
开始。
有什么方法可以在终端(在 Mac 上)执行此操作?
最佳答案
你可以使用像nl
with the -v
option这样的东西设置 1 以外的起始行号,但您可以只使用 Bash 功能:
i=1
for f in *; do
[[ -f $f ]] && mv "$f" $((i++)).txt
done
其中 i
设置为您想要的初始值。
这也避免了解析 ls
的输出,即 recommended to avoid .相反,我使用 glob (*
) 和测试 (-f
) 来确保我实际上是在操作文件而不是目录。
关于linux - 将文件重命名为数字,从特定数字开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46550877/