加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

在Linux执行命令报错”Arg list too long”的原因分析

发布时间:2020-12-30 23:39:58 所属栏目:安全 来源:网络整理
导读:《在Linux执行命令报错Arg list too long的原因分析》要点: 本文介绍了在Linux执行命令报错Arg list too long的原因分析,希望对您有用。如果有疑问,可以联系我们。 最近在SUSE LINUX操作系统中遇到个问题:在一个包含上万个文件的文件夹中执行rm *删除所

《在Linux执行命令报错”Arg list too long”的原因分析》要点:
本文介绍了在Linux执行命令报错”Arg list too long”的原因分析,希望对您有用。如果有疑问,可以联系我们。

最近在SUSE LINUX操作系统中遇到个问题:在一个包含上万个文件的文件夹中执行rm *删除所有文件时报错“Arg list too long”,最后导致删除失败.后来查了下资料,经过分析发现这里有以下几个技术点需要注意:

1. 在LINUX操作系统有限制单条命令行的长度是128KB,也就是131072字节,同时rm *这个命令在删除所有文件时,这个*作为通配符最终会转换成改文件的全路径,使得系统底层将rm *转换成了一个超过128KB大小的命令行,从而命令执行失败;

2. 查询LINUX操作系统中单条命令行的长度限制:可在LINUX操作系统中执行getconf ARG_MAX,回显信息即为该限制的字节数;

3. ARG_MAX参数在Solaris中是1048320字节(1024KB),在LINUX中式131072字节(128KB);

4. ARG_MAX参数定义是在LINUX/UNIX操作系统的内核中.

最后,对于前面提到的rm *的问题,其实可以通过以下方法解决,采用管道符和xargs的结合,确保每次rm的时候只删除一个文件,那么就不可能出现单条命令超过128KB字符长度的问题了:
# ls | xargs rm

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!