我有两个目录:
dir_1
包含a.mp4
、b.mp4
、和仅包含、。脚本应该将和移动到因为只有这些文件名与 中的文件名匹配。当我需要执行这些类型的特定操作时,我发现很难遵循脚本c.mp4
。d.mp4
dir_2
a.txt
b.txt
a.mp4
b.mp4
dir_3
dir_2
答案1
尝试,
for f in "dir_2"/*; do
filename=${f##*/}
mv -t "dir_3" "dir_1/${filename%.*}".*
done
- 循环文件
dir_2
(*.txt
仅用于循环这些文件) ${f##*/}
为您提供不带路径的文件名。${filename%.*}
为您提供不带扩展名的文件名。mv -t "dir_3" "dir_1/${filename%.*}".*
将所有带有给定内容的文件filename
(从扩展名中清除)移动到。如果需要,dir_3
您可以指定.mp4
而不是。.*