Linux下通过 rm -f 删除大量文件时报错:Argument list too long

这篇具有很好参考价值的文章主要介绍了Linux下通过 rm -f 删除大量文件时报错:Argument list too long。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux下通过 rm -f 删除大量的小文件时出现类似如下错误信息:

 -bash: /bin/rm: Argument list too long

如下图所示:

Linux下通过 rm -f 删除大量文件时报错:Argument list too long,Linux服务器,linux,linux,运维,服务器

问题原因


如果待删除文件中包含的小文件数量过多,通常是由于受到 shell 参数个数限制所致。

这个是Linux系统存在的限制,可以通过如下指令查看该参数值的配置:

getconf ARG_MAX

Linux下通过 rm -f 删除大量文件时报错:Argument list too long,Linux服务器,linux,linux,运维,服务器

解决办法


注:

  • 删除操作为高风险命令,请一定谨慎使用。确认通过快照等方式对数据进行了有效备份,或者明确可以删除。
  • 如果待处理的文件数目过多,因为处理时间较长,推荐在业务低峰期进行操作,对磁盘的IO消耗较高。
  • 对于 cp、mv 等都可以采取相同的方式实现处理。
  • 请务必核实 dir 定义的目录中除了待删除文件外无其他类型的文件,避免误删除。

可以通过如下方式尝试删除:

结合 awk 删除

可使用 awk 一次删除一个的方式进行删除。但必须先进入该目录下。操作方法如下:
1.先进入该目标目录:

如图:

Linux下通过 rm -f 删除大量文件时报错:Argument list too long,Linux服务器,linux,linux,运维,服务器


2. 使用 awk 删除:

ls -l| awk '{ print "rm -f ",$9}'|sh

如图:

Linux下通过 rm -f 删除大量文件时报错:Argument list too long,Linux服务器,linux,linux,运维,服务器

3. 再次使用命令 ls -l 查看,发现文件已经删除完成了.如图:

Linux下通过 rm -f 删除大量文件时报错:Argument list too long,Linux服务器,linux,linux,运维,服务器

结合 xargs 删除

通过 ls 来配合 xargs 删除 test 目录下的所有文件:

Linux下通过 rm -f 删除大量文件时报错:Argument list too long,Linux服务器,linux,linux,运维,服务器

结合 find 删除

通过 find 来完成,更加安全智能,支持的参数更多。

可以先使用 ls 命令列出需要删除的文件看是否正确,然后再执行删除命令。例如,通过如下指令,删除 test 目录下的 png 文件:

find /usr/local/tests/ -name "*.png" |xargs rm -r

Linux下通过 rm -f 删除大量文件时报错:Argument list too long,Linux服务器,linux,linux,运维,服务器

在执行rm命令时提示Argument list too long,如下:

Linux下通过 rm -f 删除大量文件时报错:Argument list too long,Linux服务器,linux,linux,运维,服务器

通过自定义脚本删除

可以通过以下脚本通过循环实现删除,如下:文章来源地址https://www.toymoban.com/news/detail-640952.html

#!/bin/bash
# 此处通过 DIR 指定待处理文件所在的目录
DIR='/root/mysql'  #待删除目录
cd $DIR
for I in `ls`
do
#读取ls结果中的各个文件名进行强制删除
  rm -f $I    
done

到了这里,关于Linux下通过 rm -f 删除大量文件时报错:Argument list too long的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux :: 【基础指令篇 :: 文件及目录操作:(6)】:: rmidr / rm:删除空目录、删除非空目录及删除文件指令

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 目录索引: 1. rmdir / rm 基本语法及功能 2. rmdir 基本使用测试 (看操作代码) - - 2.1 创建一个空目录

    2024年02月05日
    浏览(44)
  • Linux rm命令教程:如何安全有效地删除文件和目录(附案例详解和注意事项)

    rm 命令在Linux中主要用于删除文件或目录。 rm 的全称是 remove ,意为移除。它是Linux用户在使用过程中最常遇到的命令之一。 rm 命令在所有的Linux发行版中都是可用的,包括但不限于Ubuntu, Debian, Fedora, CentOS等。在不同的Linux发行版中, rm 命令的使用方法是一样的。 rm 命令的基

    2024年02月03日
    浏览(45)
  • Linux 删除大量小文件的两种方案 | 运维进阶

    【摘要】 Linux如何删除大量小文件?本文介绍了两种方法。 【作者】赵靖宇 环境: RHEL 6.5 + Oracle 11.2.0.4 需求: 使用df -i巡检发现Inodes使用率过高,需要清理删除文件来解决。如果Inodes满,该目录将不能写,即使df -h查看还有剩余空间。 这是因为通配符*在执行时会替换为具体

    2024年02月08日
    浏览(43)
  • Linux 删除文件提示:rm: cannot remove ‘XXXX‘: Operation not permitted 解决方案

            今天遇到一个很恼火的问题,就是在维护TP6项目时,无法在Linux中删除原有的vendor文件夹,更新进去新的内容,因为composer新require的必要的内容,本想着讲原有的删掉,直接讲压缩包放上去,解压,简单暴力,万万没想到。。。 用lsattr命令来查看是否是系统添加了

    2024年01月21日
    浏览(52)
  • Linux rm命令详解,Linux删除文件目录(非常详细)从零基础入门到精通,看完这一篇就够了。

    一、常用操作 1. 删除文件 2. 删除目录 二、其他操作 作用:删除文件或目录 参数: -f 直接删除,不需要确认。 -r 递归删除(用来删除目录) -i 删除前逐一询问。 -v 显示步骤 -d 只删除空目录 1)rm 后面直接跟文件名,可以删除文件,删除前会询问是否删除(y确认,n取消)

    2024年02月06日
    浏览(60)
  • rm——删除文件、文件夹

    rm命令来自英文单词:remove 可用于删除文件、文件夹 rm [-r -f] 参数1 参数2 …… 参数N -r选项,可选,用于删除文件夹 -f选项,可选 ,表示force,强制删除(不会弹出提示确认信息) 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示 所以一般普通用户用不

    2024年02月03日
    浏览(59)
  • rm命令——删除文件或目录

    rm命令是英文单词remove的缩写,主要功能是删除文件或目录。 因为删除文件是一个破坏性动作,因此,在使用时需要格外小心,在执行之前一定要再三确认删除的是哪个目录中的什么文件。 rm命令的语法格式如下: 常用选项如下: 选项 作用或含义 -f 强制删除,且不提示确认

    2024年02月02日
    浏览(51)
  • 【git】【rm】删除一个本地文件,并提交到远端(删除远端这个文件)

    【git】【rm】删除一个本地文件,并提交到远端(删除远端这个文件) 1.删除本地文件命名 % git rm View.qml rm \\\'/View.qml’ 2.查看状态 % git status On branch master Your branch is up to date with \\\'origin/master\\\'. Changes to be committed:   (use \\\"git restore --staged file...\\\" to unstage)     deleted:    View.qml 3.

    2024年02月08日
    浏览(63)
  • 【Linux】Argument list too long参数列表过长的办法-四种

    Linux下使用cp,mv,rm,chmod等命令时经常会碰到“Argument list too long”错误,这主要是因为这些命令的参数太长,即文件个数过多。 方案一:将文件群手动划分为比较小的组合 [user@localhost ubuntu]$ mv [a-l]* ../foo2 [user@localhost ubuntu]$ mv [m-z]* ../foo2 注:应用范围有限,只适用于文件列

    2024年02月10日
    浏览(38)
  • 解决Mac中使用rm -rf删除文件时遇到“Read-only file system“的问题

    在Mac上,rm -rf命令被广泛用于删除文件和目录。然而,有时你可能会遇到一个错误信息:“Read-only file system”。这意味着你无法删除文件,因为文件系统被设置为只读模式。 接下来,我将向你展示如何处理这个问题。 请注意,在进行任何更改之前,请仔细考虑。删除文件是永

    2024年02月14日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包