上一篇
如何在Linux中批量移动文件?
- 行业动态
- 2024-11-20
- 2643
在 Linux 中,可以使用 mv 命令批量移动文件或目录。使用通配符选择多个文件并移动到目标位置。
Linux批量移动文件和目录是一个常见的任务,通常使用命令行工具来完成,这些工具包括mv、find、xargs等,以下是几种常见的方法:
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 批量移动”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/260021.html