1 shell
我在子目录中有很多文件,我想将它们全部移到父目录中。
前任:
20150530XXXX/1.jpg
20150530XXXX/2.jpg
20150530XXXX/3.jpg
20150530XXXX/4.jpg
20150531XXXX/1.jpg
20150531XXXX/2.jpg
20150531XXXX/3.jpg
20150531XXXX/4.jpg
Run Code Online (Sandbox Code Playgroud)
我在 stackexchange 的另一个问题中发现了以下命令:
find ./ -mindepth 2 -type f -exec mv -t A {} +
Run Code Online (Sandbox Code Playgroud)
但是,这似乎覆盖了图像文件,因为每个文件都具有相同的名称 ( 1-4.jpg
)。有没有办法将子目录的名称与文件名连接起来,例如移动20150531XXXX/4.jpg
到./20150531XXXX_4.jpg
?
如果您有(在某些发行perl
版上rename
命名prename
)的版本:
find . -type f -mindepth 2 -name '*.jpg' -exec rename -n 's!/([^/]+)$!_$1!' {} +
Run Code Online (Sandbox Code Playgroud)
这只会向您显示该命令将执行的操作。如果您对此感到满意,请删除-n
实际重命名文件的选项(实际重命名不会打印任何内容)。
归档时间: |
|
查看次数: |
786 次 |
最近记录: |