如何同时重命名两个文件?


0

所以我想同时重命名两个文件。我试过这个。

mv {dog1,dog2},{puppy1,puppy2}


目前尚不清楚您是否希望dog1被转移到dog2或转移到puppy1
Tripleee

不清楚“同时”是什么意思?以原子方式?或者只想要一个单行?
xenoid

我希望dog1成为puppy1而dog 2成为puppy2
Ovid Virgil

Answers:


6

问题是新名称是否是任意的和不相关的,或者它们是否都替换了相同的文本。

对于后者,各种多重命名工具可以取代dogpuppy轻松:

rename dog puppy dog1 dog2
perl-rename s/dog/puppy/ dog1 dog2
mmv "dog*" "puppy#1"
for file in dog1 dog2; do mv "$file" "${file/dog/puppy}"; done

(在所有情况下,dog1 dog2可以缩短为dog[1-2]dog?dog*。)


第一个没有用,它说......在“用户提供的代码”中使用“严格的子”时不允许使用“狗”字样。
Ovid Virgil

第二个说它没有找到perl-rename命令,
Ovid Virgil

狗* - >小狗#1:不匹配。什么都没做。这是第三个网址
奥维维吉尔

mv:'puppy1'之后缺少目标文件操作数尝试'mv --help'以获取更多信息。mv:'puppy2'之后缺少目标文件操作数尝试'mv --help'以获取更多信息。
Ovid Virgil

在你的系统中,perl-rename实际上被称为rename
grawity

1

你需要一个循环来做到这一点:

for i in {1..2}; do mv "dog$i" "puppy$i"; done

替换2{1..2}用任何你想要的正数。


0

您可以一次重命名两个文件:

mv dog1 dog2 && mv puppy1 puppy2

如果dog1重命名成功,则只会重命名puppy1

mv dog1 dog2; mv puppy1 puppy2

无论dog1被重命名,都会尝试删除puppy1。


我尝试了第一个,它告诉我puppy2不是目录
Ovid Virgil

我尝试了第二个,它告诉我'不能stat puppy2'
Ovid Virgil
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.