温馨提示×

debian如何批量移动文件

小樊
33
2026-09-23 20:31:03
栏目: 智能运维

在 Debian(或其他 Linux 系统)中,“批量移动文件”通常有几种常见做法,取决于你按什么条件筛选文件。下面按使用场景给你总结最实用的方法。


一、按文件名批量移动(最简单)

1. 移动某一类文件

mv *.jpg /target/dir/

把当前目录下所有 .jpg 文件移动到 /target/dir/

2. 移动多个指定后缀

mv *.jpg *.png /target/dir/

二、按文件名模式移动(高级一点)

使用 find + mv

find . -maxdepth 1 -name "*.log" -exec mv {} /target/dir/ \;

说明:

  • . 当前目录
  • -maxdepth 1 不进入子目录
  • *.log 文件名匹配
  • -exec 对每个文件执行 mv

三、按文件类型批量移动

移动所有普通文件(不含目录)

find . -maxdepth 1 -type f -exec mv {} /target/dir/ \;

移动所有目录

find . -maxdepth 1 -type d -exec mv {} /target/dir/ \;

四、按文件大小批量移动

移动大于 10MB 的文件

find . -maxdepth 1 -type f -size +10M -exec mv {} /target/dir/ \;

移动小于 1MB 的文件

find . -maxdepth 1 -type f -size -1M -exec mv {} /target/dir/ \;

五、按修改时间批量移动

移动 7 天内修改过的文件

find . -maxdepth 1 -type f -mtime -7 -exec mv {} /target/dir/ \;

移动 30 天前修改的文件

find . -maxdepth 1 -type f -mtime +30 -exec mv {} /target/dir/ \;

六、使用 xargs(更快,适合大量文件)

find . -maxdepth 1 -name "*.txt" | xargs -I {} mv {} /target/dir/

或:

find . -maxdepth 1 -name "*.txt" -print0 | xargs -0 mv -t /target/dir/

七、先预览再移动(推荐安全做法)

先看看会移动哪些文件:

find . -maxdepth 1 -name "*.log"

确认无误后再执行 mv


八、批量移动并重命名(进阶)

例如:加前缀

for f in *.jpg; do
  mv "$f" "backup_$f"
done

如果你能告诉我:

  • 文件在哪里(目录结构)
  • 按什么规则批量(后缀 / 时间 / 大小)
  • 是否包含子目录

我可以给你精确的一条命令

0