xargs
这里提供 xargs 这个 Linux 指令的使用教学,并搜集一些常用的范例程式以供参考。 在 UNIX/Linux 系统中,xargs 这个指令跟其他的指令结合之后,将会变得非常有用,这里我们整理了一些常见的 xargs 使用范例与教学,透过这些简单的范例可以很快的了解 xargs 的各种使用方式。 虽然这里的范例都很简单,但是当你了解 xargs 的用法之后,你会发现 xargs 其实可以拿来处理各式各样的问题,而且非常好用,尤其是对于服务器的系统管理者而言,在管理大量的档案与目录结构时,有这样的工具会方便很多
请注意,本文编写于 94 天前,最后修改于 94 天前,其中某些信息可能已经过时。 可以使用 docker images 命令列出所有本地镜像,然后使用 grep 命令和 awk 命令过滤出标签为 none 的镜像。例如: 这个命令会输出所有标签为 none 的镜像的 ID
这篇是在讲 pipe 的用法,在讲这些工具之前,其实有个很重要的概念应该要说明 (但没有在这篇文章里被提到),也就是 Unix philosophy,这个哲学是指 unix 环境下的工具,都会设计成只做好一件事情。 而要怎么把这些工具串起来,最常见的就是 pipe,你可以在文章里看到 grep、sed 与 sort 这些工具的用法,以及怎么用 pipe 串起来。 这边刚好也可以提一下,利用 pipe 可以把不同功能打散到不同的 process 上,刚好也可以稍微利用到现在常见的多 CPU 的环境
Linux 中的 xargs 命令是一个非常有用的命令行工具,可以将一些参数集合传递给其他命令作为参数,并利用指定的命令进行处理。它可以帮助我们批量处理文件,执行一些需要多个参数的命令,并且支持并发操作。 通过将 xargs 命令与其他命令进行配合,我们可以通过一条命令批量处理多个文件,而且可以非常灵活地处理多个文件
用 UNIX,只要真的弄熟 find、sed、xargs 等工具,不用学什么 scripting language,就已经可以处理大部分复杂的需求了。 话说我以前要更换延伸档名的时候,指令大概都是这么下的: 不过,先用 sed 把延伸档名去掉,然后再加回来,有点脱裤子放屁。在我知道,原来 sed 的 -e 参数,可以连续使用,而其 p 指令,功能是原封不动地印出输入的东西,我才发觉,上面的指令,其实可以写成下面这样: 如此一番,将找到的路径,两行为一组,喂给 xargs -n2 一次收两行,就可以组合出如下的指令: 新的更换档名的方法,字数更少,亦不限于只能更换延伸档名,弹性更佳
在 Linux 命令列中,参数的数量是有上限的,当参数的数量过于庞大,就会造成问题。 当我们要一次删除这 25 万个档案时,由于档案数量太多,超过参数列容许的上限,就会产生错误: 若要对大量的档案进行操作,可以将档案的清单交给 xargs 对个别档案逐一处理,这样就可以避开参数列长度上限问题。 档案清单的产生方式有许多种,最简单的方式就是使用 ls 指令: 而 find 指令也可以使用自己的 -exec 参数直接调用其他指令来进行档案操作: 若要删除所有档案与目录下的所有档案,可以在执行 rm 指令时加上 -fr 参数,搭配 xargs 或 find 的使用方式都一样:
