我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux中的args命令怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux中的args命令怎么用

这篇文章主要为大家分析了Linux中的args命令怎么用的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux中的args命令怎么用”的知识吧。

在使用 Linux 时,你是否遇到过需要将一些命令串在一起,但是其中一个命令不接受管道输入的情况呢?在这种情况下,我们就可以使用 xargs 命令。xargs 可以将一个命令的输出作为参数发送给另一个命令。

在 Linux 中,所有标准的应用程序都有与之关联的三个数据流。分别是标准输入流(stdin),标准输出流(stdout)和标准错误流(stderr)。这些流通过文本来运行,我们使用文本将输入(stdin)发送到命令,然后响应(stdout)将会以文本形式显示在终端窗口上。错误消息也以文本的形式显示在终端窗口上(stderr)。

Linux 和类 Unix 操作系统的一大功能是可以将一个命令的标准输出流传递到另一个命令的标准输入流。第一个命令不会管它的输出是否写到了终端窗口,第二个命令也不会管它的输入是否来自键盘。

虽然所有 Linux 命令都有三个标准流,但是并不是所有命令都接受另一个命令的标准输出作为它的标准输入流的输入。因此我们无法通过管道将输入传给这些命令。

xargs是一个使用标准数据流构建执行管道的命令。通过使用xargs命令我们可以使echo,rm 和 mkdir 等命令接受标准输入作为它们的参数。

xargs命令

xargs接受管道输入,也可以接受来自文件的输入。xargs 使用该输入作为我们指定的命令的参数。如果我们没有给xargs指定特定的命令,则默认使用 echo。xargs 始终生成单行输出,即使输入的数据是多行的。

假如我们使用 ls 的 -1(每行列出一个文件)选项,则会得到一列文件名称:

$ ls -1 ./*.sh

这一命令列出了当前目录中的 Shell 脚本文件。

Linux中的args命令怎么用

如果我们将输出结果通过管道传递给 xargs ,会得到什么样的效果?

$ ls -1 ./*.sh | xargs

Linux中的args命令怎么用

可以看出来,输出以一长串文本的形式写到了终端上。由此可见,xargs 可以将输出作为参数传递给其他命令。

配合wc命令使用xargs

我们可以使用 xargs 命令轻松地让 wc 命令计算多个文件中的单词数,字符数和行数

$ ls *.c | xargs wc

执行结果如下:

Linux中的args命令怎么用

命令运行结果显示了每个文件的统计信息以及总数。

这条命令执行了以下操作:

ls列出了所有的 .page 文件,并将该列表传给了xargs。
xargs 将所有文件名传递给 wc。
wc 将这些文件名作为命令行参数进行处理。
使用带有确认消息的xargs

我们可以使用 -p(交互)选项来让 xargs 提示我们是否要进行下一步的操作。

如果我们通过 xargs 将一串文件名的字符串传递给 touch 命令,touch 将创建这些文件。

$ echo 'one two three' | xargs -p touch

Linux中的args命令怎么用

终端上显示将要执行的命令,xargs 等待我们输入 y 或 Y ,n 或 N 并按 Enter 来响应。如果只按了 Enter ,则视为 n。只有当我们当输入 y 或 Y 时才执行该命令。

我们按下y和 Enter ,然后使用ls用来检查文件是否已经创建。

$ ls one two three

Linux中的args命令怎么用

将xargs与多个命令一起使用

我们可以用-I(初始参数)选项来将 xargs 和多个命令一起使用。这一选项定义了替换字符串。在命令行中的任何出现替换字符串的位置,都会插入我们提供给 xargs 的值 。

有点抽象,我们以一个实例来进行讲解。

我们先用 tree 命令查看当前目录中的子目录。该 -d(directory)选项使 tree 命令忽略文件,只输出目录。

$ tree -d

Linux中的args命令怎么用

现在只有一个子目录 images 。

在 directories.txt 这个文件中,我们有一些想要创建的目录的名称。我们先用 cat 查看其中的内容。

$ cat directories.txt

Linux中的args命令怎么用

我们把这些内容作为输入数据传给 xargs ,执行以下的命令:

$ cat directories.txt | xargs -I % sh -c 'echo %; mkdir %'

这条命令执行了以下操作:

cat directories.txt :将 directrories.txt 文件的内容(所有要创建的目录名称)传给 xargs。
xargs -I % :定义了替换字符串 %。
sh -c:启动一个新的子shell。-c(commond)让 shell 读取命令。
‘echo %; mkdir %’:每个%都会被替换为 xargs 传过来的目录名称 。echo命令打印目录名称,mkdir 命令创建目录。

命令执行结果:

Linux中的args命令怎么用

我们可以用 tree 验证已创建是否已创建了目录。

$ tree -d

Linux中的args命令怎么用

将文件复制到多个位置

我们可以使用 xargs 命令来用一个命令将文件复制到多个位置。

首先,通过管道将两个目录的名称传给 xargs 。并且让 xargs 一次只将其中一个参数传递给正在使用的命令。

想要调用 cp 两次,每次各使用两个目录中的一个作为命令行参数,我们可以通过将 xargs 的 -n(max number)选项设置为 1 来实现。

这里还使用了-v(verbose 详细信息)选项,让 cp 反馈正在执行的操作。

$ echo ~/dir1/ ~/dir2/ | xargs -n 1 cp -v ./*.c

我们将文件复制到了两个目录,一次复制一个目录。cp 反馈了详细信息,让我们看到进行了哪些操作。

Linux中的args命令怎么用

删除嵌套目录中的文件

如果文件名中包含空格或者其他特殊字符(例如换行符),xargs 将无法正确解释这些文件名。我们可以使用 -0(空终止符)选项来解决这一问题。此时, xargs 将使用 null 字符作为文件名最终的分隔符。

这里我们以 find 命令为例。find 有自己的选项来处理文件名中的空格和特殊字符,即 -print0(全名,空字符)选项。

$ find . -name "*.png" -type f -print0 | xargs -0 rm -v -rf "{}"

这一命令执行了以下操作:

find . -name “*.png” :find 将从当前目录中搜索名称和 *.png 相匹配的对象,type -f 指定了只搜索文件。
-print0:名称将以空字符结尾,并且保留空格和特殊字符。
xargs -0:xargs 也将考虑文件名以空值结尾,并且空格和特殊字符不会引起问题。
rm -v -rf “{}”:rm 将反馈正在进行的操作(-v),递归进行操作(-r),不发送错误提示而直接删除文件(-f)。每个文件名替换 “{}”。

命令执行之后,将搜索了所有子目录,删除了其中匹配的文件。

Linux中的args命令怎么用

删除嵌套目录

假设我们要删除一组嵌套的子目录,先用tree进行查看。

$ tree -d

Linux中的args命令怎么用

$ find . -name "level_one" -type d -print0 | xargs -0 rm -v -rf "{}"

这条命令使用 find 在当前目录中递归搜索,搜索的目标是名为 level_one 的目录,然后将目录名通过xargs传递给 rm 。

这个命令和前面的命令之间的区别是,搜索的项目是最顶层目录的名称,而且-type d说明要查找的目录,而不是文件。

Linux中的args命令怎么用

每个目录的名称都在删除时打印出来。我们可以用tree再查看效果:

$ tree -d

Linux中的args命令怎么用

所有嵌套的子目录已删除了。

删除一种文件类型以外的所有文件

我们可以使用 find ,xargs 和 rm 删除所有类型的文件而只保留一种我们想要保留的类型的文件。这需要提供想要保留的文件类型。

-not 选项让 find 返回所有与搜索模式不匹配的文件名。我们此时再次使用 xargs 的 -I(初始参数)选项。这次定义的替换字符串为 {} 。这和我们之前使用的替换字符串 % 的效果是相同的。

$ find . -type f -not -name "*.sh" -print0 | xargs -0 -I {} rm -v {}

Linux中的args命令怎么用

命令执行之后,我们再通过 ls 来确认结果。可以看到,目录中只剩下了与 *.sh 相匹配的文件。

$ ls -l

Linux中的args命令怎么用

使用Xargs创建压缩文件

我们可以使用 find 命令来搜索文件,并通过 xargs 将文件名传给 tar 命令来创建压缩文件。

我们将在当前目录中搜索 * .sh 文件。

$ find ./ -name "*.sh" -type f -print0 | xargs -0 tar -cvzf script_files.tar.gz

命令执行结果将列出了所有 .sh 文件,并创建了压缩文件。

Linux中的args命令怎么用

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

关于“Linux中的args命令怎么用”就介绍到这了,更多相关内容可以搜索编程网以前的文章,希望能够帮助大家答疑解惑,请多多支持编程网网站!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux中的args命令怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux中的args命令怎么用

这篇文章主要为大家分析了Linux中的args命令怎么用的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux中的args命令怎么用”的知识吧。在使用 L
2023-06-28

Linux命令中的rpm命令怎么用

这篇文章的内容主要围绕Linux命令中的rpm命令怎么用进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!在Linux中,RPM是进行软件得安装、卸载、
2023-06-28

Linux中的cut命令怎么用

这篇文章主要为大家展示了“Linux中的cut命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中的cut命令怎么用”这篇文章吧。Cut 命令和语法cut 命令的基本语法如下:$
2023-06-15

Linux中的tee命令怎么用

这篇文章主要介绍了Linux中的tee命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux tee 命令tee 命令基于标准输入读取数据,标准输出或文件写入数据
2023-06-16

Linux中的return命令怎么用

这篇文章主要为大家展示了“Linux中的return命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中的return命令怎么用”这篇文章吧。Linux常用命令return命令使
2023-06-28

Linux中的depmod命令怎么用

这篇文章主要介绍了Linux中的depmod命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux常用命令depmod 可产生模块依赖的映射文件,在构建嵌入式系统
2023-06-28

linux中的expect命令怎么用

本篇文章为大家展示了linux中的expect命令怎么用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。expect介绍expect 是由Don Libes基于Tcl(Tool Command Lan
2023-06-28

Linux中的lsof命令怎么用

这期内容当中小编将会给大家带来有关Linux中的lsof命令怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。lsof 命令是 Linux 系统的扩展工具,它的含义是 list opened filed
2023-06-28

linux中的scp命令怎么用

小编给大家分享一下linux中的scp命令怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!scp是secure copy的简写, 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的,r
2023-06-27

Linux中的mail命令怎么用

这篇文章给大家分享的是有关Linux中的mail命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux常用命令mail命令 是命令行的电子邮件发送和接收工具。操作的界面不像elm或pine那么容易使用
2023-06-28

Linux中的source命令怎么用

这篇文章将为大家详细讲解有关Linux中的source命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux系统source命令常用于重新执行刚修改的初始化文件。如/etc/profile,b
2023-06-28

linux中的Awk命令怎么用

这篇文章主要介绍linux中的Awk命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Awk 是一个强大的工具,可以执行某些可能由其它常见实用程序(包括 sort)来完成的任务。Awk 是个普遍存在的 Unix
2023-06-16

linux中的uptime命令怎么用

这篇文章主要介绍linux中的uptime命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux uptime 命令望名生义,uptime 命令告诉你系统启动up了(运行了)多长时间。这是语法:uptim
2023-06-16

Linux中的FSCK命令怎么用

小编给大家分享一下Linux中的FSCK命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!FSCK 是一个很重要的 Linux/Unix 工具,它用于检测并
2023-06-16

Linux中的vi命令怎么用

这篇文章将为大家详细讲解有关Linux中的vi命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进
2023-06-22

linux中的apt命令怎么用

小编给大家分享一下linux中的apt命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!apt命令可以说是Ubuntu系统下最为重要的命令,安装、更新、卸载
2023-06-27

Linux中的nice命令怎么用

这篇文章给大家分享的是有关Linux中的nice命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux常用命令nice命令 用于以指定的进程调度优先级启动其他的程序。nice改变程序执行的优先权等级语
2023-06-28

Linux中的mv命令怎么用

这篇文章给大家分享的是有关Linux中的mv命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux常用命令mv命令 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。mv用来对文件或目录
2023-06-28

Linux中的chroot命令怎么用

这篇文章主要介绍Linux中的chroot命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!chroot命令 用来在指定的根目录下运行指令。chroot,即 change root directory (更改
2023-06-28

Linux中的clockdiff命令怎么用

这篇文章给大家分享的是有关Linux中的clockdiff命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在ip报文的首部和ICMP报文的首部都可以放入时间戳数据。 clockdiff 程序正是使用时间戳
2023-06-28

编程热搜

目录