当用于大文件时,垃圾邮件非常慢ubuntu 16.04

我正在写这个问题以避免混淆……在Ubuntu 16.04我不得不删除大约6500个文件。 50%为RAW图像,50%为.XML文件。 总计72GB。 我使用的是三星Evo SSD 500GB。 我实际上先将文件移动到rash然后删除它们。 我注意到只是将文件移动到垃圾箱消耗了我所有的RAM(8GB)和我所有的SWAP(8GB)。 是否有一个设置可以使Ubuntu中的Trash更有效? 我知道我可以强制删除文件并完全绕过垃圾,但这完全违背了垃圾的目的。 或者预期这种行为?

这种行为是预期的,因为当您使用nautilus删除某些内容时,它只是将其移动到垃圾箱,如您所知。

更正:这不是预期的行为。 正如BB1指出的那样,将文件“移动”到垃圾箱实际上并没有将其移动到任何地方,它只是更新它的inode以反映位置。

我猜你的ram正在被吃掉,因为它需要更多的系统资源来删除(或做任何事情)一堆小文件,而不是删除一个更大的文件。

垃圾箱的行为似乎不是非常可定制的。 遗憾的是,没有太多可以做的事情。 您可以查看trash-cli ,但我不知道它是否会更高效。

当我必须删除一堆小文件时,我总是从shell中执行它,因为它更快。 即便如此,我在尝试删除近100k文件时遇到了错误,这与“rm:参数列表太长”有关。 为了解决这个问题,我在for循环中运行rm并迭代遍历以下文件:

 for letter in {a..z};do rm -f $letter*;done 

如果您想模拟shell中的垃圾function,可以尝试这样的方法:

 #!/bin/bash ## pseudotrash elsewhere=/media/$USER/some-external-drive/pseudo-trash for file in "$@";do cp $file $elsewhere if [ "$?" -eq "0" ] ; then rm -f $file && echo "Backed up and deleted $file"||\ (echo "Could not delete $file , aborting";exit 1) else echo "Could not copy $file,aborting" ;exit 1 fi done 

而不是运行它:

 pseudotrash `ls` 

要么

 pseudotrash 'file1 file2 file3' 

我希望能回答您的问题,并提供一些帮助您解决问题的见解。

这是Nautilus(包gvfs)中一个非常烦人的错误:

但就在3天前,这个错误已得到修复,修复版本已添加到存储库中。

2017-08-28 :这个bug修复了包gvfs – 1.28.2-1ubuntu1~16.04.2

运行sudo apt-get update && sudo apt-get upgrade以更新到新版本。