如何删除linux中的大量文件/文件夹


1

我们使用hadoop将一个表拆分成较小的文件以供给mahout,但在此过程中,我们创建了大量的_temporary日志。

我们有一个用于hadoop卷的NFS挂载,所以我们可以使用所有linux命令来删除文件夹文件,但我们无法将它们删除,这是我到目前为止所尝试的:

hadoop fs -rmr /.../_temporary  : hangs for hours and does nothing

在NFS安装上:

rmr -rf /.../_temporary :hangs for hours and does nothing

find . -name '*.*' -type f -delete : same as above

文件夹看起来像这样(_temporary中的38个文件夹):

drwxr-xr-x 319324 user user 319322 Oct 24 12:12 _attempt_201310221525_0404_r_000000_0

这些内容实际上是文件夹,而不是文件。这些319322文件夹中的每一个都只有一个文件。不知道为什么以这种方式进行记录。


-type f 将找到常规文件。你要 -type d 如果你正在使用 find 找到文件夹
Matt

对@ Matt的建议稍作评论: -name '*.*' 如果您只使用,则不需要 -type d,也许我会使用这样的东西: find . -type d -delete 要么 find . -name "_temporary" -delete (根据具体情况,可能存在不应删除的文件)。
noggerl

尝试过,它永远挂起,不删除文件:/
user1745713

你能解决这个问题吗?在OS X中遇到完全相同的问题。
Ohad Schneider

Answers:


1

是吗? rmrm -r, 要么 rmdir 分别处理单个文件或目录?

如果是这样,我敢打赌你在等待NFS对319222文件夹名称进行排序并按字母顺序显示它们。尝试 ls -f | xargs rm -r

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.