oak*_*ate 5 shell-script rename
我有一个文件夹,里面有两层子文件夹。在第二个子文件夹中,有一个 jpg 文件。所有 jpg 都有相同的名称:cover.jpg
例子:
/home/user/folder001/folderAAA/cover.jpg
/home/user/folder002/folderBBB/cover.jpg
[...]
/home/user/folder999/folderZZZ/cover.jpg
Run Code Online (Sandbox Code Playgroud)
我需要找到(并复制到新文件夹)所有cover.jpg
文件并重命名它们,在其文件名(作为前缀)中添加第一个和第二个子文件夹的名称。
示例:
在预期的操作之后,ot的内容/home/user1/newfolder
必须是:
folder001_folderAAA_cover.jpg
folder002_folderBBB_cover.jpg
[...]
folder999_folderZZZ_cover.jpg
Run Code Online (Sandbox Code Playgroud)
#! /bin/bash
target_dir_path="/copy/here"
for file in folder*/*/*.jpg; do
l1="${file%%/*}"
l2="${file#*/}"
l2="${l2%%/*}"
filename="${file##*/}"
target_file_name="${l1}_${l2}_${filename}"
echo cp "$file" "${target_dir_path}/${target_file_name}"
done
Run Code Online (Sandbox Code Playgroud)
echo
如果它符合您的要求,请将其删除。