xargs是一条Unix和类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
例如删除某个目录下的文件,可以这么做 rm
find /path -type f
, 如果文件过多,就可能出现参数列表过长
的错误,导致执行失败。
这个时候使用 xargs 就能比较好的解决问题find /path -type f -print0 | xargs -0 rm
。
xargs是通过标准输入或者是管道中的一段字符串来传递命令的参数列表
, 中间会有个解析的参数的过程,然后调用相应的命令并执行,详细的参数解释请 man xargs
用法
-0
xargs参数列表是通过空格,制表符,还有换行符来区分的,例如下面的一个命令
1
|
find /tmp -name core -type f -print | xargs /bin/rm -f
|
一般情况下会正常的执行,但是文件名中如果有 空格或者是换行符,就会执行失败了
1
|
find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
|
这时候加上 -0
就能正常执行了。
-I
替换字符,把输入进来的参数替换成一个自己定义的字符,类似给输入的参数起了一个别名。
1
|
find . -name '*.py' -print0 | xargs -0 -I fname echo fname python
|
上面的命令会输出 .py
文件的名称,然后附加 “ python”,也就是 ./test.py
变成了 ./test.py python
查看 /
目录下的文件
1
|
echo "ls -ls -h"|xargs -I cmd sh -c cmd" /"
|
–show-limits
显示当前操作系统,命令行长度的限制
1 2 3 4 5 6 7 8 9 |
[lzz@orangleliu test]$ xargs --show-limits Your environment variables take up 2161 bytes POSIX upper limit on argument length (this system): 2617231 POSIX smallest allowable upper limit on argument length (all systems): 4096 Maximum length of command we could actually use: 2615070 Size of command buffer we are actually using: 131072 Execution of xargs will continue now, and it will try to read its input and run commands; if this is not what you wanted to happen, please type the end-of-file keystroke. Warning: /bin/echo will be run at least once. If you do not want that to happen, then press the interrupt keystroke. |
例子
删除当前目录下 .c
文件
1
|
find . -name "*.c" -print0 | xargs -0 rm -rf
|
查找当前目录下包含 utf-8
的 .py
文件,显示行号
1
|
find . -name '*.py' -print0 | xargs -0 grep -n 'utf-8'
|
查找当前目录下 .bak
文件,并移动到 ~/old.files
文件夹下面
1
|
find . -name "*.bak" -print0 | xargs -0 -I file mv file ~/old.files
|
实际使用中,复杂的操作比较少,暂且记录那么多。
相关推荐
Linux xargs 命令 xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。 xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。 xargs 也可以将单行或多行文本...
Linux文件查找命令`find`和`xargs`是Linux系统中非常重要的工具,它们帮助用户在文件系统中高效地定位和处理文件。本文将详细解释这两个命令的基本使用和相关选项。 `find`命令是一个功能强大的命令,用于在指定...
在Linux系统中,`xargs`是一个非常实用的命令,它能够将标准输入的数据转换成命令行参数,供其他命令使用。这个工具极大地增强了命令行的处理能力,尤其是在处理大量数据或者需要对列表中的每个元素执行相同操作时。...
Cygwin是一个在Windows上提供类Unix环境的开源项目,它通过这些DLL文件模拟了Linux的API,使得Linux命令和程序能够在Windows上运行。`rm.exe`是Cygwin对`rm`命令的实现,而`xargs.exe`则是Windows下的`xargs`工具。 ...
然而,对于熟悉Linux命令的用户来说,能够在Windows环境下使用这些命令会非常便利。本文将探讨如何在Windows上运行Linux命令,以及提供的批处理文件`linux.bat`、`listdisk.bat`和`window.bat`的作用。 首先,...
- 许多Linux命令对命令行参数的数量有限制,例如`mv`或`rm`命令只能处理一定数量的文件。当需要处理的文件数量超过这个限制时,直接使用这些命令就会出现问题。这时,`xargs`就可以帮助我们将文件列表分割成更小的...
在Windows DOS中使用Cygwin的xargs,你可以执行类似Linux下的命令,提高工作效率。 首先,你需要安装Cygwin。下载并运行安装程序,确保在选择包的步骤中包含了`Utils`类别下的`xargs`。安装完成后,可以在Cygwin的...
xargs命令有两个要点。第一,你必须列出目标文件。第二,你必须指定对每个文件需要执行的命令或脚本。 xargs命令被用来处理分布在不同目录下的文件: 计算所有文件的行数 打印指定文件的第一行 对每个文件执行一...
### Linux的find与xargs命令详解 在Linux系统中,`find`与`xargs`是两个非常强大的命令行工具,它们分别用于查找文件和执行命令。本文将深入解析这两个命令的功能、用法以及如何结合使用,以实现高效的数据处理。 ...
在Linux系统中,`xargs`是一个非常实用的命令,它可以将标准输入转换为命令行参数,用于其他命令。这个工具对于处理大量的数据输入或自动化任务尤其有用。下面我们将深入探讨`xargs`命令的各种使用技巧。 ### 一、...
Linux xargs命令 1.功能: xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候,...
本课程"【IT十八掌徐培成】Linux基础-04.xargs-mount-umount"聚焦于两个重要的Linux命令——xargs和文件系统的挂载与卸载(mount和umount)。以下是对这些知识点的详细讲解: 首先,我们来了解一下xargs命令。xargs...
在Linux系统中,xargs命令是一个非常实用的工具,它能够将一个命令的输出作为参数传递给另一个命令。这个命令的使用通常涉及到Linux命令行的输入/输出流管理,特别是标准输入流(stdin)、标准输出流(stdout)和...
2. **Cygwin**: Cygwin是一个在Windows上模拟Linux环境的开源工具集,它包含了`xargs`在内的大量Linux命令。安装Cygwin后,你可以在Windows环境下使用`xargs`。 3. **Git for Windows**: Git Bash,作为Git for ...
UNIX/Linux 命令汇总 以下是 50 个最常用的 Unix/Linux 命令,每个命令都附带了简单的示例说明,以帮助您更好地掌握 Unix/Linux。 tar 命令 tar 命令用于创建、查看和解压缩文件。示例: * 创建一个新的 tar ...