Linux 删除大文件的报错

2019-01-03 01:04:16 +08:00
 Ewig
shenjianlin@newdev:~/pdf_file(spider)$ rm ./*
-bash: /usr/bin/rm: Argument list too long
shenjianlin@newdev:~/pdf_file(spider)$ ls |xargs rm
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option
rm: invalid option -- '1'
Try 'rm ./-2018 年 5 月 PMI 点评:制造业总体呈' to remove the file ‘-2018 年 5 月 PMI 点评:制造业总体呈’.
Try 'rm --help' for more information.


请问如何处理这种
5033 次点击
所在节点    Linux
45 条回复
ptyfork
2019-01-03 10:14:43 +08:00
@Ewig
depth 表示遍历的深度,如果当前的目录下有子目录,子目录中还有子目录,那么 -depth 1 表示,只删除第一层的

用 find 了就别再用管道又 xargs 了, 现在的 linux 系统 find 本身就支持 delete 参数,好用又清晰, 除非你在用上古时期的 linux
RainySeason
2019-01-03 10:20:06 +08:00
好巧,前两天刚看过王垠写的 unix 的缺陷
http://blog.jobbole.com/25792/
Ewig
2019-01-03 10:21:52 +08:00
@yulgang 这个我用过,有特殊字符
Ewig
2019-01-03 10:22:03 +08:00
shenjianlin@newdev:~/pdf_file(spider)$ find . -name "*" | xargs rm -f '*'
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option
rm: invalid option -- '5'
Try 'rm --help' for more information.
Ewig
2019-01-03 10:23:04 +08:00
@ptyfork find . -type f 1 -delete 我直接用这个即可?
hongyexiaoqing
2019-01-03 10:29:23 +08:00
新建一个空的文件夹 kong,然后执行 sudo rsync -r --delete kong/ {目标路径}
ptyfork
2019-01-03 10:31:30 +08:00
@Ewig

find . -type f -delete
Ewig
2019-01-03 10:31:49 +08:00
@yanaraika find . -type f -max-depth 1 -delete 你这里的-max-depth 写“ 1 ” ?那后面为啥跟一个 1
yulgang
2019-01-03 10:33:20 +08:00
@Ewig

处理包含特殊字符的文件

cd 目标目录

#列出文件 inode
ls -il

#根据 inode 删除对应文件
find . -inum 上面列出的数字 -exec rm -i {} /;
yulgang
2019-01-03 10:35:52 +08:00
末尾打错,改成

find . -inum 上面列出的数字 -exec rm -i {} \;

按提示确认删除即可
sunnyadamm
2019-01-03 10:37:11 +08:00
@luanluan 在 web 目录执行 find . -name 'core*' -exec rm {} \;
cyspy
2019-01-03 10:39:45 +08:00
GNU 这套东西的设计是真的有些问题
luanluan
2019-01-03 11:01:25 +08:00
@cyspy
@sunnyadamm
@yulgang
@yulgang 我在 linux 里 一个目录下有好几种文件, 我想查一个文件的总大小,怎么查啊? du -sh *2018* 直接就列出来了,怎么汇总大小呢
zou2699
2019-01-03 12:50:31 +08:00
使用 tab 补全会自动处理转义文件名的吧,直接就可以删除了吧。
des
2019-01-03 13:01:35 +08:00
@RainySeason
照理说,powershell 就是一个好设计了
no1xsyzy
2019-01-03 13:41:51 +08:00
@des 本来应该是这样的,而且还有 Smalltalk 的一些感觉……
"whatever,it might be,a line,from,csv" -split ","
还有代码块,可以改变一段代码的变量绑定
但是 PowerShell 的 REPL 实在是太垃圾了,尤其 print 出来的东西经常没有意义,另外就是隐式强类型……
对于类型的反射求解机制也并不好( Python: dir, __dict__, hasattr ...)
文档散乱
Ewig
2019-01-03 14:16:37 +08:00
@yulgang 我这有 10 万个,你让我一个个的列举出来,按照上面删?
sunnyadamm
2019-01-03 14:59:18 +08:00
嗤嗤嗤,,,不多说了,block 了
yulgang
2019-01-03 15:09:07 +08:00
@luanluan

du -s 你要的类型,然后 将第一列用 awk 求和。然后可以根据需要决定要不要转换成 KB、MB 还是 GB 显示。
maxio
2019-01-03 16:30:32 +08:00
xargs -n 1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/523308

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX