移动与另一个目录中的文件名匹配的文件

移动与另一个目录中的文件名匹配的文件

我有两个目录: dir_1包含a.mp4b.mp4、和仅包含、。脚本应该将和移动到因为只有这些文件名与 中的文件名匹配。当我需要执行这些类型的特定操作时,我发现很难遵循脚本c.mp4d.mp4dir_2a.txtb.txta.mp4b.mp4dir_3dir_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而不是。.*

相关内容