问题标签 [xargs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
22 回答
254797 浏览

linux - 如何使用 xargs 复制名称中包含空格和引号的文件?

我正在尝试复制目录下的一堆文件,并且许多文件的名称中有空格和单引号。当我尝试将findgrepwith串在一起时xargs,出现以下错误:

关于更强大地使用 xargs 的任何建议?

这是在带有 BSD的Mac OS X 10.5.3xargs (Leopard) 上。

0 投票
13 回答
241703 浏览

xargs - 让 xargs 对每一行输入执行一次命令

如何让 xargs 对给定的每一行输入只执行一次命令?它的默认行为是将行分块并执行一次命令,将多行传递给每个实例。

来自http://en.wikipedia.org/wiki/Xargs

查找 /path -type f -print0 | xargs -0 rm

在此示例中,find 为 xargs 的输入提供一长串文件名。然后 xargs 将此列表拆分为子列表,并为每个子列表调用一次 rm。这比这个功能等效的版本更有效:

查找 /path -type f -exec rm '{}' \;

我知道 find 有“exec”标志。我只是从另一个资源中引用一个说明性的例子。

0 投票
6 回答
16792 浏览

command-line - xargs 无法识别 bash 别名

我正在尝试运行以下命令:

其中“foobar”是在我的 .bashrc 文件中定义的别名或函数(在我的例子中,它是一个带有一个参数的函数)。显然 xargs 不承认这些是它可以运行的东西。有没有聪明的方法来解决这个问题?

0 投票
6 回答
1872 浏览

bash - 将脚本的输出作为独立的 bash 命令运行

假设您有一个 perl 脚本“foobar.pl”,它将以下内容打印到标准输出

并且您希望将 perl 脚本输出的任何内容作为独立的 bash 命令运行(不要担心安全问题,因为它是在受信任的环境中运行的)。

如何让 bash 将其识别为独立命令?

我试过使用 xargs,但这似乎只想将参数传递给预定义的命令。

我希望 perl 脚本能够输出任意命令。

以上不起作用,因为我希望它在现有的 cygwin 环境中运行......

以上不起作用,因为 bash 似乎正在运行一个新进程,因此 bash_profile 的初始化和设置没有被实例化。

0 投票
6 回答
4587 浏览

linux - 重命名一系列文件

试图重命名 linux 服务器上的一系列文件。找到我想要的文件很容易:

当然,作为 mbox 文件,其中一些名称中带有空格,因此变为:

我正在传输到 xargs 以便我可以重命名文件:

鉴于 INBOX.mbox,回声应该返回类似于 INBOX 的内容,但是 bash 抱怨:

我怎样才能解决这个问题?如果可能的话,我想尝试将它保存在 find/xargs 解决方案中,这样我就不会在它周围添加很多循环结构。

0 投票
5 回答
8917 浏览

command-line - `xargs -t` 是输出stderr 还是stdout,你能控制吗?

假设我有一个包含 hi.txt 和 blah.txt 的目录,我在 linux-ish 命令行上执行以下命令

ls *.* | xargs -t -i{} echo {}

您将看到的输出是

我想重定向stderr输出(比如'echo blah.txt'失败......),只留下xargs -t命令的输出写入std out,但它看起来好像也是stderr。

ls *.* | xargs -t -i{} echo {} 2> /dev/null

有没有办法控制它,让它输出到标准输出?

0 投票
4 回答
67151 浏览

bash - 如何在 xargs 命令中使用 >?

我想找到一个 bash 命令,它可以让我 grep 目录中的每个文件并将该 grep 的输出写入单独的文件。我的猜测是做这样的事情

但是,据我所知, xargs 不喜欢双引号。但是,如果我删除双引号,那么该命令会将整个命令的输出重定向到一个名为 '{}'.out 的文件,而不是一系列单独的文件。

有谁知道使用 xargs 的方法吗?我只是以这个 grep 场景为例来说明我的 xargs 问题,因此任何不使用 xargs 的解决方案都不适用于我。

0 投票
3 回答
9608 浏览

grep - 使用 grep 和 xargs,避免“未终止的引用”错误

我感到很沮丧,以至于我认为是时候问一个问题了。

我正在尝试在一个硬编码到 1000 个页面中的网站上替换一个电子邮件地址。它在 FreeBSD 6.3 服务器上。

这是我正在使用的命令:

grep -R --files-with-matches 'Email\@domain.com' 。| 排序 | 独特 | xargs perl -pi -e 's/Email\@domain.com/Email\@newdomain.com/' *.html

这是我不断收到的错误:

xargs:未终止的报价

奇怪的是,当我在 3 个文件(嵌套结构)的测试用例上运行该命令时,它工作得很好。我一直在谷歌搜索,大多数解决方案似乎都处理在 . 和 xargs 之后的 -0。然而,这会产生一组不同的错误,让我相信我把东西放在了错误的地方。

在此先感谢您的帮助

0 投票
8 回答
10832 浏览

linux - 如何在 xargs 中使用别名命令?

我的 .aliases 中有以下别名:

我想在名称foo中包含字符串的所有文件中不区分大小写地查找bar

这就是我得到的:

有没有办法在 xargs 中使用别名,或者我必须使用完整版:

注意: 这是一个简单的例子。此外gi,我还有一些非常复杂的别名,我无法如此轻松地手动扩展。

编辑: 我用过tcsh,所以请指定答案是否是特定于 shell 的。

0 投票
4 回答
2925 浏览

shell - 'find -exec' 或 'find | 哪个更快?xargs -0'?

在我的 Web 应用程序中,我使用 PHP 脚本呈现页面,然后从中生成静态 HTML 文件。将静态 HTML 提供给用户以提高性能。HTML 文件最终会变得陈旧,需要删除。

我正在讨论两种编写驱逐脚本的方法。

第一种是使用单个查找命令,例如

第二种形式是通过 xargs 管道,类似于

第一种形式rm为它找到的每个文件调用,而第二种形式只是将所有文件名发送到单个rm(但文件列表可能很长)。

哪种形式会更快?

就我而言,缓存目录在几个 Web 服务器之间共享,所以这一切都是通过 NFS 完成的,如果这对这个问题很重要的话。