Linux 用bash将foldername重命名为filename
我想使用文件夹名重命名文件 这:Linux 用bash将foldername重命名为filename,linux,bash,rename,Linux,Bash,Rename,我想使用文件夹名重命名文件 这: ├── foo01 │ └── bar.png │ └── bar.txt ├── foo02 │ └── bar.png │ └── bar.txt └── foo03 └── bar.png └── bar.txt 应该是这样的: ├── foo01 │ └── foo01.png │ └── foo01.txt ├── foo02 │ └── foo02.png │ └── foo02.txt └── fo
├── foo01
│ └── bar.png
│ └── bar.txt
├── foo02
│ └── bar.png
│ └── bar.txt
└── foo03
└── bar.png
└── bar.txt
应该是这样的:
├── foo01
│ └── foo01.png
│ └── foo01.txt
├── foo02
│ └── foo02.png
│ └── foo02.txt
└── foo03
└── foo03.png
└── foo03.txt
我找不到这样做的方法。有人能帮忙吗?使用Perl的独立重命名命令:
rename -n 's|([^/]*)/[^/]*\.(.*)$|$1/$1.$2|' */*
输出:
foo01/bar.png renamed as foo01/foo01.png
foo01/bar.txt renamed as foo01/foo01.txt
foo02/bar.png renamed as foo02/foo02.png
foo02/bar.txt renamed as foo02/foo02.txt
foo03/bar.png renamed as foo03/foo03.png
foo03/bar.txt renamed as foo03/foo03.txt
foo01/bar.png重命名为foo01/foo01.png
foo01/bar.txt重命名为foo01/foo01.txt
fooo2/bar.png重命名为fooo2/fooo2.png
fooo2/bar.txt重命名为fooo2/fooo2.txt
foo03/bar.png更名为foo03/foo03.png
foo03/bar.txt重命名为foo03/foo03.txt
如果一切正常,请删除选项
-n
到目前为止您尝试了什么?有关批量重命名,请参见此:请显示您的代码。由于堆栈溢出对您隐藏了关闭原因:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。我使用s | regex | string |
将path和filename元素转换为新字符串。语法与sed
的s
命令非常相似。谢谢,这很有帮助。我必须使用相同的语法进行重命名(而不是prename),而且一切正常。200个文件被重命名:)