我想将目录中的所有文件重命名为序列号:
1.txt
2.txt
3.txt
依旧......
以下是我目前正在使用的代码:
ls | cat -n | while read n f; do mv "$f" "$n.txt"; done
代码确实有效,但我需要从特定的数字开始。例如,我可能想要使用数字49
而不是数字1
。
有没有办法在终端(在Mac上)执行此操作?
答案 0 :(得分:3)
您可以使用类似nl
with the -v
option的内容来设置1以外的起始行号,但您可以使用Bash功能:
i=1
for f in *; do
[[ -f $f ]] && mv "$f" $((i++)).txt
done
其中i
设置为您想要的初始值。
这也避免了解析ls
的输出*
。相反,我使用glob(-f
)和测试(Deprecation Notice in ./../php/php-gettext/streams.php#48
Methods with the same name as their class will not be constructors in a future version of PHP; StringReader has a deprecated constructor
Backtrace
./../php/php-gettext/gettext.inc#41: require()
./libraries/select_lang.lib.php#477: require_once(./../php/php-gettext/gettext.inc)
./libraries/common.inc.php#569: require(./libraries/select_lang.lib.php)
./index.php#12: require_once(./libraries/common.inc.php)
)来确保我实际上是在操纵文件而不是目录。