问题标签 [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.
linux - 如何使用 xargs 复制名称中包含空格和引号的文件?
我正在尝试复制目录下的一堆文件,并且许多文件的名称中有空格和单引号。当我尝试将find
和grep
with串在一起时xargs
,出现以下错误:
关于更强大地使用 xargs 的任何建议?
这是在带有 BSD的Mac OS X 10.5.3xargs
(Leopard) 上。
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”标志。我只是从另一个资源中引用一个说明性的例子。
command-line - xargs 无法识别 bash 别名
我正在尝试运行以下命令:
其中“foobar”是在我的 .bashrc 文件中定义的别名或函数(在我的例子中,它是一个带有一个参数的函数)。显然 xargs 不承认这些是它可以运行的东西。有没有聪明的方法来解决这个问题?
bash - 将脚本的输出作为独立的 bash 命令运行
假设您有一个 perl 脚本“foobar.pl”,它将以下内容打印到标准输出
并且您希望将 perl 脚本输出的任何内容作为独立的 bash 命令运行(不要担心安全问题,因为它是在受信任的环境中运行的)。
如何让 bash 将其识别为独立命令?
我试过使用 xargs,但这似乎只想将参数传递给预定义的命令。
我希望 perl 脚本能够输出任意命令。
以上不起作用,因为我希望它在现有的 cygwin 环境中运行......
以上不起作用,因为 bash 似乎正在运行一个新进程,因此 bash_profile 的初始化和设置没有被实例化。
linux - 重命名一系列文件
试图重命名 linux 服务器上的一系列文件。找到我想要的文件很容易:
当然,作为 mbox 文件,其中一些名称中带有空格,因此变为:
我正在传输到 xargs 以便我可以重命名文件:
鉴于 INBOX.mbox,回声应该返回类似于 INBOX 的内容,但是 bash 抱怨:
我怎样才能解决这个问题?如果可能的话,我想尝试将它保存在 find/xargs 解决方案中,这样我就不会在它周围添加很多循环结构。
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
有没有办法控制它,让它输出到标准输出?
bash - 如何在 xargs 命令中使用 >?
我想找到一个 bash 命令,它可以让我 grep 目录中的每个文件并将该 grep 的输出写入单独的文件。我的猜测是做这样的事情
但是,据我所知, xargs 不喜欢双引号。但是,如果我删除双引号,那么该命令会将整个命令的输出重定向到一个名为 '{}'.out 的文件,而不是一系列单独的文件。
有谁知道使用 xargs 的方法吗?我只是以这个 grep 场景为例来说明我的 xargs 问题,因此任何不使用 xargs 的解决方案都不适用于我。
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。然而,这会产生一组不同的错误,让我相信我把东西放在了错误的地方。
在此先感谢您的帮助
linux - 如何在 xargs 中使用别名命令?
我的 .aliases 中有以下别名:
我想在名称foo
中包含字符串的所有文件中不区分大小写地查找bar
:
这就是我得到的:
有没有办法在 xargs 中使用别名,或者我必须使用完整版:
注意: 这是一个简单的例子。此外gi
,我还有一些非常复杂的别名,我无法如此轻松地手动扩展。
编辑: 我用过tcsh
,所以请指定答案是否是特定于 shell 的。
shell - 'find -exec' 或 'find | 哪个更快?xargs -0'?
在我的 Web 应用程序中,我使用 PHP 脚本呈现页面,然后从中生成静态 HTML 文件。将静态 HTML 提供给用户以提高性能。HTML 文件最终会变得陈旧,需要删除。
我正在讨论两种编写驱逐脚本的方法。
第一种是使用单个查找命令,例如
第二种形式是通过 xargs 管道,类似于
第一种形式rm
为它找到的每个文件调用,而第二种形式只是将所有文件名发送到单个rm
(但文件列表可能很长)。
哪种形式会更快?
就我而言,缓存目录在几个 Web 服务器之间共享,所以这一切都是通过 NFS 完成的,如果这对这个问题很重要的话。