当前位置:首页 > 行业动态 > 正文

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

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

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

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

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结尾的文件

      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脚本

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

      #!/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 批量移动”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

0