批量重命名文件为其文件夹名称

bas*_*oob 4 bash rename

我有一个这样的文件夹结构:“图片/2015/2015-01-02/random_name.jpg”,我想将文件重命名为“2015-01-02 001.jpg”、“2015-01-02 002”。 jpg'等

我不太熟悉 bash 编程和 perl 表达式,因此非常感谢任何帮助!提前致谢

Tom*_*unt 5

cd target_dir
dcomp="$(basename "$(pwd)")"
count=1
for file in *; do
    ext="${file##*.}"
    mv -v "$file" "$dcomp $(printf '%03d' "$count").$ext"
    (( count++ ))
done
Run Code Online (Sandbox Code Playgroud)

这假设您真的希望结果文件名中有一个空格,这不是一个好主意。当然,您可以将循环内的模式更改为您想要的任何内容。要对多个目录执行此操作,请将整个内容放在它们的循环中。