You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Linux下通过命令行指定Meld需过滤排除的文件/目录?

如何在Linux下通过命令行指定Meld需过滤排除的文件/目录?

我太懂这种无奈了——Meld确实在功能和速度上比WinMerge差点意思,但Linux下没得选的时候也只能硬用。而且它的命令行文档确实有点滞后,明明有办法实现命令行过滤,却没在meld --help里写清楚,挺坑人的。

下面给你两种可行的解决方案:

方案一:用--exclude直接指定(Meld 3.20+版本可用)

如果你的Meld版本是3.20或更新的,其实可以直接用--exclude参数跳过不想比较的文件/目录,多次使用该参数就能添加多个过滤规则:

# 排除单个文件类型
meld --exclude "*.log" dir1 dir2

# 同时排除多个规则:日志文件、node_modules目录、.git目录
meld --exclude "*.log" --exclude "node_modules/" --exclude ".git/" dir1 dir2

这个参数属于「功能已实现但文档没跟上」的情况,所以meld --help里没提到,但实际是可以正常使用的。

方案二:自定义过滤器文件(兼容所有版本)

如果你的Meld版本比较旧,不支持--exclude,可以先创建自定义过滤规则文件,再在命令行调用它:

  1. 创建过滤器文件,比如放在~/.config/meld/filters/my_custom_ignore.filter,内容格式为XML:
<?xml version="1.0" encoding="UTF-8"?>
<filter name="My Ignore Rules" enabled="true">
  <patterns>
    <!-- 排除.log结尾的文件 -->
    <pattern type="exclude">*.log</pattern>
    <!-- 排除node_modules目录 -->
    <pattern type="exclude">node_modules/</pattern>
    <!-- 排除.git目录 -->
    <pattern type="exclude">.git/</pattern>
  </patterns>
</filter>
  1. 命令行调用Meld时,指定使用这个过滤器:
meld --filter "My Ignore Rules" dir1 dir2

你也可以先在Meld的GUI里(路径:编辑→首选项→过滤器)可视化创建好规则,然后直接用过滤器名称调用,效果完全一致。

备注:内容来源于stack exchange,提问作者Stan

火山引擎 最新活动