- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
您好,我正在尝试编写一个 shell 命令:
fswatch./src | xargs -I {} cp {} ./otherfolder
前两件事与上面的命令一起工作,但我不知道如何在这之后运行命令。
我试过了
fswatch./src | xargs -I {} cp {} ./otherfolder && make
那行不通,因为我认为 && 与 xargs 冲突
fswatch./src | xargs -I {} cp {} ./otherfolder |制作
这里会立即调用 make 命令,而不是在复制完成之后。 (它甚至在 fswatch 触发更改之前被调用)
是否可以使用 xargs 在 cp 之后运行命令?
最佳答案
解决该问题的一种方法是生成一个 shell:
fswatch ./src | xargs -I {} sh -c "cp '{}' ./otherfolder && make"
双引号中的内容在单独的 shell 中执行,并且会按您预期的方式运行(首先复制,然后执行 make,假设复制成功)。
{}
两边的单引号用于防止文件名包含空格或其他字符(例如 *
)时出现问题,否则这些字符会被 shell 扩展。
关于linux - 在使用 xargs 和 fswatch 的命令之后运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35196643/
据我了解,Linux 中的 xargs 命令可用于获取一个命令的输出并将其作为另一个命令的输入传递。但是,我注意到将 xargs 作为参数传递给自身会执行以前简单的输出,如果它在没有参数的情况下被调用
如何让 xargs 对给定的每一行输入精确执行一次命令?它的默认行为是对行进行分块并执行一次命令,将多行传递给每个实例。 From http://en.wikipedia.org/wiki/Xargs
我正在使用 xargs 尝试回显文件名,后跟其内容。这是命令 find output/ -type f | xargs -I {} sh -c "echo {} ; cat {}" 但是由于某种原因,
xargs 擅长插入初始参数: seq 0 10 | xargs -n 3 echo foo 产生这个输出: foo 0 1 2 foo 3 4 5 foo 6 7 8 foo 9 10 当我还想要尾
为什么 找到 . -名称“*.xml” | xargs grep FOO 返回与文件名的匹配,而 find 。 -名称“*.xml” | xargs -i -sh -c "grep FOO {}" 不
每 xargs --help: -L, --max-lines=MAX-LINES use at most MAX-LINES non-blank input lines per command li
我有以下 3 个命令(每个都包含 xargs 和并行进程),我想将它们一起并行运行。 1. ls filenames_for_bld*_all | xargs -i bash -c 'calculat
我刚发现两个命令之间的区别: echo sum.txt| xargs cat 这会输出sum.txt的内容 echo sum.txt| xargs -0 cat 这显示错误: cat: sum.txt
考虑以下几点: $ echo index.html* | xargs -L 1 ls -l -rw-r--r-- 1 zeki zeki 17198 2011-05-03 23:18 index.h
我想做类似的事情: find . -type f | xargs cp dest_dir 但是xargs将dest_dir用作初始参数,而不是最终参数。我想知道: 是否可以为xargs指定最终参数?
zgrep -i XXX XXX | grep -o "RID=[0-9|A-Z]*" | uniq | cut -d "=" -f2 | xargs -0 -I string echo
简而言之,这是我的问题 $ echo 'for i in $@; do echo arg: $i; done; echo DONE' > /tmp/test.sh $ echo "ac\nbc\ncc
我正在尝试将一些 .flac 文件转换为 .mp3,以便将其导入 iTunes。我尝试使用 find、xargs 和 ffmpeg,但 xargs 给我一个未终止的引号错误(因为我的文件名中有引号)。
我正在尝试设置一个脚本,以根据 transmission-remote 的输出自动删除 .torrent 文件。 transmission-remote http://localhost/transm
我想了解Rampion's code中xargs man的使用: screen -t man /bin/sh -c 'xargs man || read' 感谢 Rampion:我们不需要猫! 为什么
我遇到的问题是通配符量词由于某种原因没有通过 xargs 传递给命令。 假设,我们有包含以下内容的文件 file1: -l -a f* 我们需要通过 xargs 将参数传递给 ls。 cat file
我正在尝试处理位于磁盘上许多不同位置的 DVD 文件。它们的共同点是它们(每组输入文件)都位于名为 VIDEO_TS 的目录中。每种情况下的输出都是一个以该目录的父目录命名的文件。 我知道我可以获得每
我有一个 xargs 命令: xargs -a es_doc_positions.txt -P 64 -I {} populate_es_index.py --start {} --end {} 是否
我有一个 C 程序,它通过 i2c 连续读取加速度计数据。每当平板电脑的方向发生变化时,它都会向标准输出输出一个新行。 现在,我希望能够在 bash 脚本中使用该输出来更改屏幕的旋转。 现在,问题是这
我知道我可以使用 xargs 获取文件列表并为每个文件运行一次命令。 我想做的是将文件列表作为单个参数列表传递给命令。例如: ls |尾部-10 输出 a b c d 但我想将它传递给一个命令,它将接
我是一名优秀的程序员,十分优秀!