1
66450146 2019-01-03 01:07:53 +08:00
xargs rm --
|
3
Ewig OP shenjianlin@newdev:~/pdf_file(spider)$ ls |xargs -0 -l1 rm -f
xargs: argument line too long |
4
ptyfork 2019-01-03 01:38:01 +08:00
find . -type f -depth 1 -delete
|
5
msg7086 2019-01-03 01:48:52 +08:00
第一个问题。
星号展开过长。你可以一次只删一部分文件。比如像 rm 2018* 这样只删除少量文件。 第二个问题。 文件名开始的减号会被识别成参数,需要像一楼说的那样 xargs rm 后面加上 -- 把参数终结掉。 |
6
Ewig OP @msg7086 ls |xargs rm --
rm: cannot remove ‘ Value ’: No such file or directory rm: cannot remove ‘ as ’: No such file or directory rm: cannot remove ‘ Revenue ’: No such file or directory rm: cannot remove ‘ Declines-17 页.pdf ’: No such file or directory rm: cannot remove ‘ A ’: No such file or directory rm: cannot remove ‘ Wright ’: No such file or directory |
8
zealot0630 2019-01-03 01:59:54 +08:00
rm "./文件名"
|
9
zealot0630 2019-01-03 02:00:15 +08:00
引号不能省略
|
10
Ewig OP @zealot0630 具体格式怎么写
|
11
lcdtyph 2019-01-03 03:06:50 +08:00 via iPhone
find . -type f -delete
|
12
leido 2019-01-03 03:08:53 +08:00 via Android
ls | xargs -i rm -rf {}
再不行就 find 来删 |
13
geelaw 2019-01-03 03:25:38 +08:00
一个简单的答案是直接删除 parent directory。
论 shell globbing 的坏处。 |
14
congeec 2019-01-03 04:01:54 +08:00
标题误导人,不是删除大文件报错,是文件名不符合 Linux 命名惯例导致 rm 没法正确识别文件名
|
15
yanaraika 2019-01-03 04:11:09 +08:00
不要 ls 再 pipe,find . -type f -max-depth 1 -delete 是正确的
|
16
runAll 2019-01-03 08:32:52 +08:00 via iPhone
用 rsync,拿一个空目录和需要删除清空目录同步
rsync --delete-before -a -H -v --progress --stats 空目录 待清空目录 |
17
luanluan 2019-01-03 09:32:59 +08:00
@leido
@zealot0630 @zealot0630 @66450146 web 目录下产生 100 多 G 的 core12121 到 core53341 ,有什么办法删除? find /web/ -name 'core*' | xargs rm -rf 安全不? |
20
yulgang 2019-01-03 09:55:41 +08:00
cd 到目标目录,cd 到目标目录,cd 到目标目录
#rm 列过长处理: find . -name "*" | xargs rm -rf '*' |
21
ptyfork 2019-01-03 10:14:43 +08:00
@Ewig
depth 表示遍历的深度,如果当前的目录下有子目录,子目录中还有子目录,那么 -depth 1 表示,只删除第一层的 用 find 了就别再用管道又 xargs 了, 现在的 linux 系统 find 本身就支持 delete 参数,好用又清晰, 除非你在用上古时期的 linux |
22
RainySeason 2019-01-03 10:20:06 +08:00 1
好巧,前两天刚看过王垠写的 unix 的缺陷
http://blog.jobbole.com/25792/ |
24
Ewig OP 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. |
26
hongyexiaoqing 2019-01-03 10:29:23 +08:00
新建一个空的文件夹 kong,然后执行 sudo rsync -r --delete kong/ {目标路径}
|
28
Ewig OP @yanaraika find . -type f -max-depth 1 -delete 你这里的-max-depth 写“ 1 ” ?那后面为啥跟一个 1
|
29
yulgang 2019-01-03 10:33:20 +08:00 1
|
30
yulgang 2019-01-03 10:35:52 +08:00
末尾打错,改成
find . -inum 上面列出的数字 -exec rm -i {} \; 按提示确认删除即可 |
31
sunnyadamm 2019-01-03 10:37:11 +08:00
@luanluan 在 web 目录执行 find . -name 'core*' -exec rm {} \;
|
32
cyspy 2019-01-03 10:39:45 +08:00
GNU 这套东西的设计是真的有些问题
|
33
luanluan 2019-01-03 11:01:25 +08:00
@cyspy
@sunnyadamm @yulgang @yulgang 我在 linux 里 一个目录下有好几种文件, 我想查一个文件的总大小,怎么查啊? du -sh *2018* 直接就列出来了,怎么汇总大小呢 |
34
zou2699 2019-01-03 12:50:31 +08:00 via iPhone
使用 tab 补全会自动处理转义文件名的吧,直接就可以删除了吧。
|
35
des 2019-01-03 13:01:35 +08:00 via Android
@RainySeason
照理说,powershell 就是一个好设计了 |
36
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 ...) 文档散乱 |
38
sunnyadamm 2019-01-03 14:59:18 +08:00 1
嗤嗤嗤,,,不多说了,block 了
|
39
yulgang 2019-01-03 15:09:07 +08:00
|
40
maxio 2019-01-03 16:30:32 +08:00
xargs -n 1
|
41
zjsxwc 2019-01-03 16:33:10 +08:00
直接删掉当前目录好了
rm -rf . ./* 的话文件一多就删不掉,报参数太长 |
42
lieh222 2019-01-03 16:35:34 +08:00
在当前目录执行,for i in `ls`;do rm $i; done,这样可能比较慢,不着急可以这样删,看楼主还能发帖问明显是不着急
|
44
rootit 2019-01-03 17:52:54 +08:00
因为有特殊字符
使用 rm -f *要删除的文件 用*(正则)替代特殊字符 试试 记得要匹配到一个 小心删除其他的,先 ls *要删除的文件 看下是否匹配正确 然后再删除 |
45
ofblyt 2019-03-01 10:49:04 +08:00
这个帖子实在太危险了,看了这一贴,实操了几个命令,现在我在搜如何恢复删除文件
|