百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

mv argument list too long错误

bigegpt 2025-03-13 13:11 8 浏览

家中领导负责的一个系统,在清理过期文件的时候,提示了个错误,是时候展示真正的技术了,


需求

Linux中,有如下路径结构,


需要将/opt/app/log中"a"开头和".log"为后缀的文件,挪动到/opt/app/log/backup文件夹中,符合条件的文件数量有几十万,此时执行mv,则会提示mv参数列表太长的错误,


问题

这是因为mv移动的文件数量太多了,此时不能通过mv移动文件。


解决方案1

Argument list too long本质是需要处理的长度超过系统的长度,因此无法执行相关命令。


既然参数过长,直观的思路,就是减少参数,分而治之的方式,来解决这问题。


此时就可以借助find找出符合条件的文件,然后拆开执行,mv的指令,有两种执行方式,一个是xargs,另一个是-exec。


xargs指令是给其他指令传递参数的一个过滤器,也是组合多个命令的一个工具,-i会将xargs的内容赋值给{}。


-exec参数后面是指执行其后面的指令,-exec以;为结尾,由于各个系统中分号的意义不同,因此用\进行转义,即\;,{}会被find指令的结果替换。


我们采用-exec,拼接指令如下,find首先找出符合条件的文件,然后{}会替换find的结果,依次执行mv,


从结果来看,a*.log的文件,确实从/opt/app/log移到/opt/app/log/backup,但是执行了多少次的mv,就会提示多少次"... and ... are the same file",相当于刷屏几十万次,这是为什么?


而 且从提示看,"./backup/a1.log"和"/opt/applog/backup/a1.log",因为此时使用"cd /opt/app/log",已经是在/opt/app/log下执行了,所以"./backup/a1.log"和"/opt/applog /backup/a1.log"其实就是同一个文件。


解决方案2

从Stackoverflow的一个帖子,看到这种解释,find指令会递归到/opt/app/log/backup/路径下搜索文件,


按照他说的,相当于我在/opt/app/log/和/opt/app/log/backup/下都要搜索一次a*.log,此时执行mv,会提示文件重复,禁止执行。

既然知道了解释,如何解决?


我们检索的目标,其实就是/opt/app/log/,因此不让find找/opt/app/log/backup/路径,就可以了。此时,可以使用"-not -path",指定不扫描。


使用如下指令,"-not -path"跟着/opt/app/log/backup/,表示不扫描/opt/app/log/backup/路径,


此时就能正常执行指令mv,不会出现提示的错误了。

相关推荐

超详细的SqlServer数据库触发器总结

概述触发器(trigger)是SQLserver提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,当对...

SQLSERVER 事务日志 LSN 到底是什么?

一:背景1.讲故事大家都知道数据库应用程序它天生需要围绕着数据文件打转,诸如包含数据的.mdf,事务日志的.ldf,很多时候深入了解这两类文件的合成原理,差不多对数据库就能理解一半了,关于...

sqlserver的插入insert,更新 update触发器示例

插入触发器createtrigger[dbo].[insertename]---触发器名称on[dbo].[eEmployee]---那个表触发afterinsert--插入后再触发as...

10 个 T-SQL 提示和技巧

概述:.NET和T-SQL共享一种明确无误的纽带。从我记事起,我就一直使用T-SQL以及C#和EntityFrameworkCore。然而,在所有这些抽象之下,人们很容易忽视原始S...

无畏契约手游测试资格获取方法,安卓IOS下载教程

《无畏契约:源能行动》是拳头游戏与腾讯光子工作室联合开发的《无畏契约》正版手游,延续了端游的5v5战术射击核心玩法,并针对移动端进行了操作优化。游戏以快节奏的爆破模式为核心,融合角色技能系统、经济策略...

微软正在测试重新设计的Office图标 但您现在可以提前下载重制版本

今年4月,有消息称微软正在征求用户对一组Office图标7年来首次重制版的看法(上一次重制是在2018年末)。现在,有人决定自己动手,制作了一套微软的高分辨率图标包与用户共享以获得反馈。Reddi...

AB Download Manager:一款可以替代IDM的开源桌面下载管理器

软件介绍IDM下载器大家应该多少都知道一点,如果不知道的话只能自行百度了,但是IDM本身是需要付费的,而今天推荐的这款软件,在下载方面是和IDM差不多的,大概有90%的相似度,感兴趣的朋友可以体验一下...

《夺宝奇兵》PS5光盘仅20G:其余需联网下载

来源:游民星空【《夺宝奇兵》PS5光盘仅20G:其余需联网下载】据游戏测试账号“DoesItPlay1”在推特发布动态表示,《夺宝奇兵:古老之圈》PS5实体光盘只存储了20GB的游戏数据,其余内容需要...

薇姐聊诗词7:诗词创作韵部查询及检测工具

薇姐聊诗词7:诗词创作韵部查询及检测工具。·1、诗词创作中所用韵脚哪里找?平水韵:106部,分平声30部、上声29部、去声30部、入声17部,反映中古汉语语音体系。新韵:(中华新韵)14部,以普通话为...

阿里云国际站:怎样模拟高并发测试场景?

本文由【云老大】TG@yunlaoda360撰写一、使用JMeter安装JMeter:从JMeter官网下载并安装JMeter。创建测试计划:打开JMeter,创建一个新的测试计划。添加线程组...

Android Studio 新增 AI 驱动的测试和更智能的崩溃诊断功能

随着GoogleI/O2025大会的落幕,值得注意的是,谷歌在AndroidStudio中引入了几项新功能,旨在改善Android应用程序的开发流程。最新版本集成了更先进的AI工...

如何在本地测试PHP源码的网站

通常,我们测试自建网站或从网上获取的PHP源码时,若直接上传到服务器,出错后再修改会很麻烦,因此一般会选择先在本地电脑上进行测试。1、先下载喜欢的源码,很多网站提供下载,如源码论坛等。这些源码是现成...

显卡性能测试工具3DMark06的应用教程

显卡作为计算机的重要组成部分,也是主要的输出设备。在计算机系统中,图形处理性能的瓶颈往往在于显卡。若要评估显卡性能,用户可以借助专业的检测工具3DMark,判断显卡是否能满足当前需求,或者是否需要...

Downie4 安装教程(轻松获取视频素材)

效果一、准备工作下载软件链接:http://www.macfxb.cn二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功三、运行测试1、打开软...

如何使用瑞星杀毒软件的网速测试功能

下面为大家介绍瑞星杀毒软件的网速测试功能。1、打开安全工具,找到网速测试,点击下载后开启。2、打开网速测试页面,点击开始测试按钮。3、测试结束后,你就能知晓自己的网速了。(9744667)...