如何在Linux中批量移动文件?

在 Linux 中,可以使用 mv 命令批量移动文件或目录。使用通配符选择多个文件并移动到目标位置。

Linux批量移动文件和目录是一个常见的任务,通常使用命令行工具来完成,这些工具包括mvfindxargs等,以下是几种常见的方法:

linux 批量移动

1、使用mv命令结合通配符

移动多个文件到目标目录

      mv file1.txt file2.txt file3.txt /path/to/destination/

移动指定后缀的文件

      mv *.txt /path/to/destination/

移动指定前缀的文件

      mv prefix* /path/to/destination/

移动当前目录下的所有文件夹

      mv */ /path/to/destination/

2、使用find命令结合-exec参数

查找并移动所有以.txt结尾的文件

linux 批量移动
      find /path/to/source -name "*.txt" -exec mv {} /path/to/destination/ ;

递归查找并移动所有文件和目录

      find /path/to/source -type f -exec mv {} /path/to/destination/ ;

3、使用xargs命令

查找并移动所有以.txt结尾的文件

      find /path/to/source -name "*.txt" | xargs -I {} mv {} /path/to/destination/

递归查找并移动所有文件和目录

      find /path/to/source -type d | xargs -I {} mv {} /path/to/destination/

4、使用rsync命令

同步并删除源文件

      rsync -av --remove-source-files /path/to/source/ /path/to/destination/

5、使用shell脚本

linux 批量移动

递归移动所有文件和子目录

      #!/bin/bash
      source_dir="/path/to/source"
      target_dir="/path/to/target"
      mkdir -p $target_dir
      recursive_move() {
        for file in "$1"/*; do
          if [ -f "$file" ]; then
            mv "$file" "$target_dir"
          elif [ -d "$file" ]; then
            recursive_move "$file"
          fi
        done
      }
      recursive_move $source_dir

保存为脚本文件(如move_files.sh),并赋予执行权限

      chmod +x move_files.sh
      ./move_files.sh

相关问答FAQs

1、如何在移动文件时避免覆盖目标目录中的同名文件?

mv命令中使用-n参数可以避免覆盖目标目录中已存在的文件。

     mv -n *.txt /path/to/destination/

或者使用-i参数,在覆盖前提示确认:

     mv -i *.txt /path/to/destination/

2、如何批量移动文件并保留其原始修改时间和权限?

mv命令中使用-p选项可以保留文件的原始修改时间和权限:

     mv -p *.txt /path/to/destination/

小伙伴们,上文介绍了“linux 批量移动”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1336826.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-11-20 07:30
下一篇 2024-11-20 07:30

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入