xargs 命令详解

xargs 命令是 Unix 系统中一个功能强大的实用工具,它允许用户从标准输入中**参数并执行命令。它经常与其他命令一起使用,例如 find,grep,ls 等等。

以下是一些 xargs 命令的常用选项和示例的解释:

  • -n:指定每次执行命令使用的最大参数数量。例如,xargs -n 1 command 将逐个执行 command 的一个参数。
  • -I:将命令中指定的占位符字符串替换为标准输入中的参数。例如,xargs -I {} command {} 将使用标准输入中的参数替换 {}。
  • -t:在执行命令之前将要执行的命令打印到标准错误输出。例如,xargs -t command 将在执行命令之前打印要执行的命令。
  • -p:在执行每个命令之前提示用户确认。例如,xargs -p command 将在执行每个命令之前提示用户确认。
  • -0:指定输入项以空字符而不是空格分隔。当处理包含空格或其他特殊字符的文件名时,这非常有用。例如,find . -name '*.txt' -print0 | xargs -0 command 将在所有以 .txt 结尾的文件上执行 command。

以下是 xargs 的一些示例用法:

  • 要删除以 .bak 结尾的目录中的所有文件,可以使用以下命令:

find . -name '*.bak' -print0 | xargs -0 rm

  • 要在特定扩展名的所有文件中搜索字符串,可以使用以下命令:
find . -name '*.txt' -print0 | xargs -0 grep 'search_string'
  • 要同时在多个文件上执行命令,可以使用以下命令:

ls *.txt | xargs command

  • 要将所有特定扩展名的文件转换为不同格式,可以使用以下命令:
find . -name '*.jpg' -print0 | xargs -0 -I {} convert {} {}.png

 

LINUX下批量删除空文件

Linux下批量删除空文件(大小等于0的文件)的方法

find . -name "*" -type f -size 0c | xargs -n 1 rm -f



用这个还能够删除指定大小的文件,仅仅要改动相应的 -size 參数即可,比如:

find . -name "*" -type f -size 1024c | xargs -n 1 rm -f



就是删除1k大小的文件。

(但注意 不要用 -size 1k。这个得到的是占用空间1k,不是文件大小1k的)。

假设仅仅要删除目录或者名字连接等,能够相应的改 -type 參数,详细细节见 man find

你可能感兴趣的:(linux,运维)