我尽量避免使用,rm
这样就不会永久删除任何内容。我正在使用实用功能trash
,但它一直告诉我trash: cannot trash regular file
。为什么我不能删除这些文件?例如,它们是我在程序中创建的 csv 文件。
$ ls -l | grep filename
-rw-rw-r-- 1 username usergroup 298025 Sep 23 02:33 filename.csv
使用标志运行它-v
可得到:
trash: found unusable .Trash dir (should be a dir): /.Trash
trash: Failed to trash filename.csv in /.Trash/1005, because :[Errno 13] Permission denied: '/.Trash'
trash: Failed to trash filename.csv in /.Trash-1005, because :[Errno 13] Permission denied: '/.Trash-1005'
trash: cannot trash regular file `filename.csv'
我还注意到了另一个功能。我试图trash
从不属于我的目录中获取文件。但如果我mv
将文件复制到~
,我可以trash
在那里成功获取。
答案1
GNOMEish 文件管理器需要一个地方来放置废弃的文件。
- 您的“主”分区上已删除的文件转到:
/home/$USER/.local/share/Trash
- 出于性能和空间原因,其他分区上已删除的文件无法复制到“主目录”。
因此它会尝试将它们放入/[partition mount]/.Trash-$UID
文件夹中。如果没有对该文件夹的读写权限,就不会有垃圾。
以需要垃圾的用户身份在分区根目录中运行此 bash。
sudo mkdir .Trash-$UID && sudo chown $USER:$USER .Trash-$UID
您可以删除此文件夹并保护分区/以禁用该功能。
sudo rm -rf /[partition mount]/.Trash-xxxx
sodo chown root:root /[partition mount]/
答案2
看起来您正在尝试删除您没有写权限的目录中的文件。您无法执行此操作。查看您收到的错误:
trash: Failed to trash filename.csv in /.Trash/1005, because :[Errno 13] Permission denied: '/.Trash'
您要么 i) 没有权限写入包含该文件的目录(您需要执行此操作才能从中删除文件)和/或 ii) 没有权限写入,./.Trash
因为它不是您的目录。
答案3
我通过.Trash
在所有挂载点的根目录中创建一个文件夹(可以通过df
命令看到)来修复它,而不仅仅是home
文件夹。