每个文件夹都有.mkv
或.avi
个文件。
E.g:
Sommerferien201308/eins.avi
Sommerferien201309/eins.mkv
Herbst201401/film.avi
Herbst201402/krz.mkv
重命名为:
Sommerferien201308/Sommerferien201308.avi
Sommerferien201309/Sommerferien201309.mkv
Herbst201401/Herbst201401.avi
Herbst201402/Herbst201402.mkv
如何将文件名重命名为其文件夹的名称? 当然每个foldername都是独一无二的。并且每个文件/文件夹都需要手动执行。
我会尝试使用find。
find . -type d -name "" -exec cd "" && mv {} \;
但我不知道如何选择文件夹名称以及如何选择.avi或.mkv以及如何存储所选文件夹名称。
答案 0 :(得分:1)
您可以在包含find
和*.avi
个文件的文件夹的基本文件夹中使用此*.mkv
命令:
while IFS= read -rd '' f; do
(
IFS=/
arr=($f)
if [[ $f != *"/${arr[len-2]}"* ]]; then
len=${#arr[@]}
ext="${arr[len-1]##*.}"
cd "$(dirname "$f")" && echo mv "${arr[len-1]}" "${arr[len-2]}.$ext"
fi
)
done < <(find . \( -name '*.mkv' -o -name '*.avi' \) -print0)
如果您对输出感到满意,请在echo
之前删除mv
。