linux -/usr/bin/find 参数列表太长

标签 linux shell find redhat xargs

尝试使用以下命令行搜索从 list.txt 中排除的所有文件

find . -type f -name "*.ext" $(printf "! -name %s " $(cat list.txt))

我得到以下结果

-bash: /usr/bin/find: Argument list too long

我也尝试过 xargs 但不确定我是否正确使用它。任何帮助将不胜感激。

最佳答案

我会通过管道发送到grep:

find -type f -name '*.ext' | grep -vFf list.txt

当传递-f时,grep从文件中读取搜索模式。 -v 否定搜索。通常 grep 将搜索模式视为正则表达式。如果您 -F grep 会将它们视为固定字符串。

关于linux -/usr/bin/find 参数列表太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28727980/

相关文章:

java - 你怎么 'escape'一个用户名:password pair in a connection string?

linux - 在 ssh 远程服务器的 heredoc 中使用别名

linux - Linux下无法安装bower

shell - 制作 shell 'source' 文件使用相对路径

linux - 如何从 bash shell 脚本中的数组中删除某个字段?

javascript - 如何 - JavaScript 替换可查找所有实例,而不仅仅是第一个实例

bash - 在一个文件中查找不在另一个文件中的行的快速方法?

php 文件自动重命名为 php.suspected

windows - 字符串比较在 PowerShell 函数中不起作用 - 我做错了什么?

ruby-on-rails - 在哪里修补Rails ActiveRecord::find()以便首先检查内存中的集合?