xargs 是在做什么的呢?就以字面上的意义来看, x 是加减乘除的乘号,args 则是 arguments (参数) 的意思,所以说,这个玩意儿就是在产生某个指令的参数的意思! xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 stdin 的资料分隔成为 arguments 。 因为是以空白字元作为分隔,所以,如果有一些档名或者是其他意义的名词内含有空白字元的时候, xargs 可能就会误判了~他的用法其实也还满简单的!就来看一看先!
[root@linux ~]# xargs [-0epn] command
参数:
-0 :如果输入的 stdin 含有特殊字元,例如 `, \, 空白键等等字元时,这个 -0 参数
可以将他还原成一般字元。这个参数可以用于特殊状态喔!
-e :这个是 EOF (end of file) 的意思。后面可以接一个字串,当 xargs 分析到这个字串时,就会停止继续工作!
-p :在执行每个指令的 argument 时,都会询问使用者的意思;
-n :后面接次数,每次 command 指令执行时,要使用几个参数的意思。看范例三。
当 xargs 后面没有接任何的指令时,预设是以 echo 来进行输出喔!
范例:
范例一:将 /etc/passwd 内的第一栏取出,仅取三行,使用 finger 这个指令将每个
帐号内容秀出来
[root@linux ~]# cut -d':' -f1 < /etc/passwd |head -n 3| xargs finger
Login: root Name: root
Directory: /root Shell: /bin/bash
Never logged in.
No mail.
No Plan.
......底下省略.....
# 由 finger account 可以取得该帐号的相关说明内容,例如上面的输出就是 finger root
# 后的结果。在这个例子当中,我们利用 cut 取出帐号名称,用 head 取出三个帐号,
# 最后则是由 xargs 将三个帐号的名称变成 finger 后面需要的参数!
范例二:同上,但是每次执行 finger 时,都要询问使用者是否动作?
[root@linux ~]# cut -d':' -f1 < /etc/passwd |head -n 3| xargs -p finger
finger root bin daemon ?...y
...... 底下省略.....
# 呵呵!这个 -p 的参数有趣了吧?!他可以让使用者的使用过程中,被询问到每个
# 指令是否执行!
范例三:将所有的 /etc/passwd 内的帐号都以 finger 查阅,但一次仅查阅五个帐号
[root@linux ~]# cut -d':' -f1 < /etc/passwd | xargs -p -n 5 finger
finger root bin daemon adm lp ?...y
......底下省略.....
# 在这里鸟哥使用了 -p 这个参数来让您对于 -n 更有概念。一般来说,某些指令后面
# 可以接的 arguments 是有限制的,不能无限制的累加,此时,我们可以利用 -n
# 来帮助我们将参数分成数个部分,每个部分分别再以指令来执行!这样就 OK 啦!^_^
[root@linux ~]#
范例四:同上,但是当分析到 lp 就结束这串指令?
[root@linux ~]# cut -d':' -f1 < /etc/passwd | xargs -p -e'lp' finger
finger root bin daemon adm ?...
# 仔细与上面的案例做比较。也同时注意,那个 -e'lp' 是连在一起的,中间没有空白键。
# 上个例子当中,第五个参数是 lp 啊,那么我们下达 -e'lp' 后,则分析到 lp
# 这个字串时,后面的其他 stdin 的内容就会被 xargs 舍弃掉了!
删除数量比较多的文件
ls | xargs -n 20 rm -fr
ls当然是输出所有的文件名(用空格分割)
xargs就是将ls的输出,每20个为一组(以空格为分隔符),作为rm -rf的参数
也就是说将所有文件名20个为一组,由rm -rf删除,这样就不会超过命令行的长度了
分享到:
相关推荐
3. **实例** - **创建文件**:创建三个文件`file1`, `file2`, `file3`,使用`echo`和`xargs`结合`touch`命令。 ``` [root@localhost ~]# echo "file1 file2 file3" | xargs -t touch ``` 4. **限制参数数量** ...
xargs命令有两个要点。第一,你必须列出目标文件。第二,你必须指定对每个文件需要执行的命令或脚本。 xargs命令被用来处理分布在不同目录下的文件: 计算所有文件的行数 打印指定文件的第一行 对每个文件执行一...
#### 四、实例分析 **示例1:使用xargs删除匹配的文件** 假设我们需要删除当前目录下所有以`.bak`结尾的文件,可以使用以下命令: ```sh ls *.bak | xargs rm -f ``` 这里,`ls *.bak`列出了所有以`.bak`结尾的...
rpm -qa | grep mariadb | xargs rpm -e --nodeps ``` #### 三、安装MySQL 使用RPM包管理器安装MySQL 5.7.11版本的各个组件: ```bash rpm -ivh mysql-community-common-5.7.11-1.el6.x86_64.rpm rpm -ivh mysql-...
### Shell Find 和 Xargs 详述 #### 一、Find 命令详解 ##### 1. Find 命令格式 Find 是 Linux 和 Unix 系统中用于搜索文件的强大工具之一。它允许用户根据多种条件查找文件。其基本语法如下: ```bash find ...
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中...
### Linux 下 find 命令实例详解 #### 概述 `find` 是 Linux 和类 Unix 系统中一个非常强大的文件查找工具。通过 `find` 命令,用户可以基于多种条件来搜索文件系统中的文件或目录,如名称、权限、所有者、组、...
以下为在shell中使用管道处理数据的的几个实例 示例1:生成一个8位的随机密码 tr -dc A-Za-z0-9_ </dev/urandom | head -c 8 | xargs 示例2:查看系统中所有的用户名称,并按字母排序 awk -F: '{print $1}' /...
### AIX命令介绍篇-find-命令实例讲解 #### 一、引言 在AIX操作系统中,`find`命令是一个非常强大的工具,用于在文件系统中查找满足特定条件的文件或目录。通过灵活运用`find`命令的不同选项,用户能够高效地定位所...
### Nmap扫盲使用教程:全面解析与实例操作 #### 引言 在网络安全领域,Nmap(Network Mapper)是一款不可或缺的工具,被广泛应用于网络扫描、主机发现、端口扫描以及操作系统检测等多个方面。本教程旨在为初学者...
### Python3变量与基本数据类型用法实例分析 #### 3.1 保留字和标识符 ##### 3.1.1 保留字 保留字是Python语言中已经被赋予特定意义的一些单词,开发程序时不可以把这些保留字作为变量、函数、类、模块和其他对象...
* (5) 列出文件绝对路径(包含隐藏文件):find $pwd -maxdepth 1 | xargs ls -ld ### 2. mkdir 命令 mkdir 命令用于创建文件夹。可用选项: * -m: 对新建目录设置存取权限,也可以用 chmod 命令设置 * -p: 可以...
文本处理命令,包括find,xargs,grep,sed,awk命令的详解及实例分析。
可以使用`KEYS`命令结合`xargs`来批量删除特定模式的键,如`redis-cli KEYS "user:*:followers" | xargs redis-cli DEL`,这将删除所有以"user:"开头,中间任意字符,后跟":followers"的键,即用户关注者数据。...
* 列出文件绝对路径(包含隐藏文件):find $pwd -maxdepth 1 | xargs ls -ld 二、cd 命令 cd 命令的语法为 cd [目录名],用于切换当前目录至 dirName。 实例: * 进入要目录:cd / * 进入 "home" 目录:cd ~ * ...
3. **find命令实例**: - 查找家目录中扩展名为`.txt`的文件:`$ find ~ -name "*.txt" -print` - 在当前目录及其子目录中查找所有`.txt`文件:`$ find . -name "*.txt" -print` 4. **配合xargs使用**: - `...
以下是对`find`命令的一些详细解释和实例说明: 1. **基本命令格式**:`find pathname –options [-print –exec –ok …]` - `pathname`:表示查找的起始路径。 - `options`:可以是多个参数,用于设置查找条件...
- `xargs wc -l`:`xargs`命令将前面找到的文件名作为参数传递给`wc -l`,`wc -l`统计每行的数目,从而得到每个文件的代码行数并累加。 如果你希望去除空行的统计,可以使用`grep`命令过滤掉空行: ```bash find ....