重命名子目录中的文件


2

我想将一些文件“folder.jpg”重命名为“cover.jpg”。文件本身位于当前目录下面两级。一个简单的电话

mv */*/folder.jpg */*/cover.jpg

不起作用。

那么......如何为所有子目录自动完成?

谢谢!


你是递归尝试的吗?喜欢mv -R */*/folder.jpg */*/cover.jpg
Schwesi 2016年


@Schwesi -R和-r都是mv的无效选项:-)
Elmi

Answers:


1

你可以使用find这个:

find ./your-top-dir/ -iname 'folder.jpg' -execdir mv -i '{}' cover.jpg \;

这删除了我的所有文件folder.jpg :-(
Elmi

1
该死的!非常抱歉!我忘记-execdir了命令发生在文件夹本身,因此所有mv命令都在调用文件夹上执行,导致所有命令都./cover.jpg在循环中移动到同一个文件。
A. Loiseau

-1

出于这个答案的目的,我调用当前目录下面的目录dir1,以及下面的目录directory2。move命令看起来像这样:

mv dir1/dir2/folder.jpg dir1/dir2/cover.jpg

1
如果只有一个文件,将工作-但问题明确表示,有多个文件,在多个目录(例如dir1a/dir2adir1a/dir2bdir1b/dir2adir1b/dir2b,等)...... PS你的答案甚至不是内部一致; 你说你正在调用第二个目录“directory2”,但你的命令却说dir2
斯科特

修改我的答案,移动多个文件与他们的名称的共同部分,如扩展使用以下
Python Jim

修改我的答案,移动多个文件与他们的名称的共同部分,如扩展名,使用以下内容:
Python Jim

修改我的答案,移动多个文件与其名称的公共部分,如扩展名,使用mv * .x ./dir1/dir2/,其中x是常见的扩展名。
Python Jim

(1)如果您想修改答案,请进行编辑。(2)你还没有得到它。没有“其名称的共同部分,例如扩展名”; 所有源文件都具有完全相同的名称:folder.jpg。而且没有一个目标目录; 有多个目录包含文件(每个目录一个相关文件),文件将被重命名(但不会移动到不同的目录中)。你没有回答这个问题。
斯科特
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.