【发布时间】:2019-12-13 14:57:47
【问题描述】:
我经常将一堆名为“Unknown.png”的文件放入一个文件夹,并且经常将它们重命名为“unknown (1).png、unknown (2).png”等。这有点问题有时在清理文件并将它们移动到其他地方时,我会被问到是否要替换或重命名等。
所以我决定创建一个 crontab 任务,将文件重命名为 CB_RANDOM,这样我什至不必担心可能会覆盖两个同名文件。
到目前为止,我能想到,我找到了文件,将名称 Unknown 替换为 CB_ 并添加一个随机数。
问题出现在文件名末尾的 (x) 处。我也设法弄清楚了如何解决它,我只是去掉了所有括号和数字。
问题是我不知道如何使重命名函数遵循这两个规则。
for u in (find -name unknown*); do
rCode = random
rename -v 's/unknown/CB_$rCode' $u
rename -v 's/[ ()0123456789]//g' $u
理想情况下,我希望能够在同一行代码上遵循这两个规则,特别是因为一旦它运行第一行,那么 $u 将无法找到第二步的文件。
【问题讨论】:
-
重命名整个文件名而不是
unknown部分可以解决这个问题。rename -v "${u}" "CB_${rCode}.png" "${u}" -
由于您使用的是循环,您可以简单地使用
bash语法构造新名称并使用mv。如果您想使用模式规则重命名文件文件夹,那么rename是要使用的工具。