rm:.filename 未删除:超出磁盘配额

rm:.filename 未删除:超出磁盘配额

ls -lt这是我从当前目录中获得的完整文件名。

EXPORT_v1x0_20120811_11_T_065800_070000.dat.gz

文件名也由日期组成。在上面的文件中,日期是20120811

因此,我尝试删除所有以 开头EXPORT_v1x0且日期早于 的文件20120825

我正在使用命令行中的以下脚本来删除文件

find . -name "EXPORT_v1x0*" | awk -F'_' '$3<20120825' | xargs rm

但是每当我使用上述命令删除文件时,我总是会出现以下异常。

rm: ./EXPORT_v1x0_20120811_11_T_065800_070000.dat.gz not removed: Disc quota exceeded

有人能告诉我这个异常是什么意思吗?以及如何解决这个问题?

我在跑步SunOS

bash-3.00$ uname -a
SunOS lvsaishdc3in0001 5.10 Generic_142901-02 i86pc i386 i86pc

答案1

您需要执行类似cat /dev/null > file(或echo > file) 的操作来回到配额以下,以便您可以再次使用 rm。

答案2

手动删除您找到的最小的文件,直到低于配额,然后您将能够使用标准方法删除。

我不知道为什么@Volodymyr Savchenko 的答案被否决了。实际上这也是对我唯一有用的技巧。

我在 HPC 工作并且我的配额用完了。

-尝试几乎任何命令都要花费很长时间。

-rsync远程使用 --remove-source-files 不起作用:

rsync -avz --remove-source-files -e "ssh -p ####" usr@host:path/file.dat ./
receiving file list ... done
rsync: sender failed to remove file.dat: Disk quota exceeded (122)

-rm 大多数文件不起作用:

[usr@server ~]$ rm  path/file.dat
rm: cannot remove 'path/file.dat': Disk quota exceeded

-正在做

cat /dev/null path/file

显然可以工作,但 rm 却不行(但出现了超出配额的错误消息)(我不明白为什么)。

尽管如此,删除那些我仅“触碰过”的小文件(即,大小非常小的空文件)是可行的,并且让我有机会低于配额并能够正常删除文件。

答案3

我猜你没有权限删除该文件,或者它是只读的。尝试 rm -f。配额消息来自尝试写入磁盘的某些内容。

答案4

我遇到了同样的问题,而您列出的通常建议的解决方案均不起作用。

但我意识到可以删除小于 1kb 的最小文件。我只需找到足够多的小文件,就可以再次使用 rm 清理大文件。

编辑:我想澄清一下,类似的东西cat /dev/null > some-file对我来说不起作用。这是我提到的建议的解决方案之一。

相关内容