Linux copy时排除某文件/目录

这篇具有很好参考价值的文章主要介绍了Linux copy时排除某文件/目录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方法一 ls + xargs

# x1为源路径, x2为欲排除的文件/目录,x3为目标路径
ls x1/ | grep -v x2 | xargs -i cp -r x1/{} x3/   
# copy时排除cpp子目录
ls code/|grep -v cpp|xargs -i cp -r code/{} ./test/ 
# 同时按类型排除js或Java文件,按路径排除当前目录下app文件夹,复制当前目录下文件到bak209文件夹
cd/app/a01/ && ls ./ |grep -v 1.java| grep -v 1.js | grep -v app |xargs -i cp -r ./{} ../bak209/
  • ls x1/ : 将x1目录下的文件/目录全部列出来(不包含隐藏的,否则要加 -a)
  • | : 管道,将前面命令输出的内容作为输入参数传给后面的命令
  • grep -v x2 : 排除x1目录下的x2文件/目录 (-v的作用是排除)
  • xargs -i : xargs实现将管道传递过来的stdin进行处理然后传递到命令的参数位置上;
# 复制除了dir2目录外的dir目录
cp -r `ls -A | grep dir| grep -v "dir2"` /tmp/
# 复制当前目录dir2目录除外
cp -r !(dir2) /tmp/

方法二 find + cpio

# x1:源路径,x2:排除的文件/目录,x3:目标路径
find x1 | grep -v x2 | cpio -pdm x3   
find ./ |grep -v .cpp |cpio -pdm ../test/ 
# 同时按类型排除js或Java文件,按路径排除当前目录下app文件夹,复制当前目录下文件到bak209文件夹
cd/app/a01/ && find ./ |grep -v 1.java| grep -v 1.js | grep -v app |cpio -pdm ../bak209/
# 同时按类型排除js或Java文件,按路径排除当前目录下app文件夹,复制当前目录下文件到bak209文件夹
find . -type f ! -name "*.js" -type f ! -name "*.java"  | grep -v app |cpio -pdm ../bak209/
  • find: 查找源路径下的所有文件
  • cpio: 做文件归档处理
    • -p: Copy-pass 模式,即将文件/目录拷贝到另一个位置
    • -d: 根据需要创建前导目录
    • -m: 创建文件时保留以前的文件修改时间

方法三 rsync

rsync是远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。
rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。文章来源地址https://www.toymoban.com/news/detail-496897.html

rsync -av source_dir dest_dir
# 排除单个文件/目录
rsync -avP --exclude=del_file source_dir dest_dir
# 排除多个文件/目录
rsync -avP --exclude={del_file1, del_file2, ...} source_dir dest_dir
# 将cpp目录下的所有不包含.cpp的文件同步到test目录
rsync -avP --exclude="*.cpp" ./cpp/ ./test/ 
# 同时按类型排除js或Java文件,按路径排除当前目录下app文件夹,复制当前目录下文件到bak209文件夹
rsync -avP --exclude="*.js"  --exclude="*.java" --exclude=app/  ./ ../bak209/
  • -a : 包含-rtplgoD
  • -r : 同步目录时要加上,类似cp时的-r选项
  • -v : 同步时显示一些信息,让我们知道同步的过程
  • -P : 显示同步过程,比如速率,比-v更加详细
  • -l : 保留软连接
  • -L : 加上该选项后,同步软链接时会把源文件给同步
  • -p : 保持文件的权限属性
  • -o : 保持文件的属主
  • -g : 保持文件的属组
  • -D : 保持设备文件信息
  • -t : 保持文件的时间属性
  • –delete : 删除DEST中SRC没有的文件
  • –exclude : 过滤指定文件,如–exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
  • -u : 加上该选项后,如果DEST中的文件比SRC新,则不同步
  • -z : 传输时压缩

到了这里,关于Linux copy时排除某文件/目录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux :: 【基础指令篇 :: 文件及目录操作:(7)】:: cp:指定文件或目录的拷贝及指定拷贝到指定路径(与重命名)

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 目录索引: 1. 基本语法及功能 2. 常用可选项说明 3. 文件基本拷贝操作 - - 3.1 指定文件拷贝到当前

    2024年02月03日
    浏览(68)
  • Linux批量文件操作——基于find-xargs

    在项目初创阶段,经常会遇到各种文件操作,拷贝头文件,库,批量重命名等。文件结构一复杂,这就将是个无聊的工作。 find 可以在目录结构中搜索文件,这是它在 man 里面的作用描述。那么怎么搜索呢?有多种方式,按文件时间,大小,按文件名,路径名,按文件类型,

    2024年02月09日
    浏览(42)
  • git diff对比差异时指定或排除特定的文件和目录

    你一般什么时候会用GPT? 居然会有这种话题,答案就是作为程序员的我天天在用,虽然GPT有个胡说八道的毛病,但试试总没错的,就比如今天题目中这个问题,我也是先查了GPT没好使,但给我提供了查询思路,最后在Stack Overflow上找到解决办法,记录一下 我就直接列答案了,

    2024年02月04日
    浏览(46)
  • Linux系统之文件共享目录设置方法

    1./data/soft的用户组为admin 2./data/soft目录能被admin组的成员读取、写入和访问,除了root用户外其余用户无此权限。 3.admin组用户有zhangsan/lisi/admin,kitty用户主组为kitty,属组为IT。 4.在/data/soft下创建的文件,其组所有权为admin组。 直接创建zhangsan/lisi/kitty/admin三个用户。 创建adm

    2024年02月06日
    浏览(48)
  • Linux 统计目录下文件数量的方法

    1、统计当前目录下文件的个数(不包括目录) 2、统计当前目录下文件的个数(包括子目录) 3、查看某目录下文件夹(目录)的个数(包括子目录) 4、统计当前文件夹下叫某某的文件的数量 5、统计当前文件夹下指定类型的文件的数量 例如这里需要找 js 文件的数量:

    2024年02月13日
    浏览(49)
  • Linux 查看当前路径下所有文件夹大小的方法

    补充: du -sh 查看当前目录总共占的容量,而不单独列出各子项占用的容量 du -ah --max-depth=1 a 表示显示目录下所有的文件和文件夹(不含子目录) h 表示以人类能看懂的方式 max-depth 表示目录的深度 du -lh --max-depth=1 查看当前目录下一级和子目录占用的磁盘容量 整理完毕,完结

    2024年02月16日
    浏览(67)
  • Python获取与处理文件路径/目录路径

      1.1 获取当前文件的绝对路径 使用**os.path.abspath()**获取当前文件的绝对路径。 输出:   1.2.1 获取当前文件的所在目录 使用**os.path.dirname()**获取当前文件的所在目录。 输出:   1.2.2 获取当前文件的所在目录的上一级目录 使用多个**os.path.dirname()**嵌套以获取当前文件的所

    2024年01月17日
    浏览(49)
  • 【Linux】目录结构、路径

    目录 1. 目录结构 1.1 基本概念 1.2 具体的目录结构 2. 路径 2.1 绝对路径和相对路径 2.2 特殊路径符 Linux的目录结构是一个树形结构。 Windows系统可以拥有多个盘符,如 C盘、D盘、E盘。Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面。 在Windows系统中,路径之间的

    2024年02月10日
    浏览(40)
  • Django的静态文件目录(路径)如何配置?

    通常用下面的三条语句配置Django的静态文件目录 那么这三条语句分别的作用是什么呢? 请参考博文 https://blog.csdn.net/wenhao_ir/article/details/131986394 【搜索 注册静态文件目录】

    2024年02月06日
    浏览(55)
  • Linux查看某进程所部署的目录路径

    1.首先查看系统中正在跑的进程都有什么 2.然后通过抓取你要看的进程名,比如哪些服务 Linux在启动一个进程时,系统会在 /proc 下创建一个 以PID命名的文件夹; 在该文件夹下会有我们的进程的信息; 通过 ll 或 ls –l 查看/proc/xxx服务的pid(上面第二步抓取的) 为exe的文件即

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包