问题描述
我有许多文件夹,例如 123456_files 和许多文件,例如 123456.dzi , 我想将 123456.dzi 文件移到 123456_files 文件夹中 (将相同的.dzi文件放入相同的* _files文件夹)
for f in *.dzi; do
[[ -f "$f" ]] || continue
dir="${f}"
mv "$f" "$dir"
done
解决方法
#!/bin/bash
for f in *.dzi; do
[[ -f "$f" ]] || continue
dir="${f%.dzi}"
mkdir "${dir}_files"
mv "$f" "${dir}_files"
done
,
您可以这样做:
for f in *.dzi; do [[ -d "${f%.*}_files" ]] && mv "$f" "${f%.*}_files"; done
${variable%pattern}
语法从变量的末尾删除模式中最短的匹配项,即,在这种情况下,它删除扩展名。
如果目录不存在,则可以使用类似的方法来创建它:
for f in *.dzi; do mkdir -p "${f%.*}_files"; mv "$f" "${f%.*}_files"; done