我有大约 100 个文件,文件名如下:“1999 - Film Title.avi”和“2025 - Another Film Title.avi”等。我希望将每个文件移动到单独的文件夹中,文件夹名称格式如下:“Film Title (1999)”和“Another Film Title (2025)”。这样的事可能吗,还是这将是一项费力的手动任务?
我正在使用 Ubuntu 服务器(Ubuntu 22.04.2 LTS)。
谢谢
答案1
在bash
...尝试进行一次试运行:
for f in *.avi
do
# Get the name part
n="${f:7}"
n="${n%%\.*}"
# Get the year part
y="${f:0:4}"
# Define directory name
d="${n} (${y})"
# Create directory
echo mkdir -pv -- "$d"
# Move file into directory
echo mv -nv -- "$f" "${d}/"
done
如果输出听起来像您想要的,那么运行此操作来真正执行此操作:
for f in *.avi
do
n="${f:7}"
n="${n%%\.*}"
y="${f:0:4}"
d="${n} (${y})"
mkdir -pv -- "$d"
mv -nv -- "$f" "${d}/"
done