我尝试找到我的垃圾桶,以便释放磁盘上的一些空间。我尝试了建议的命令如何使用终端清空垃圾箱?但似乎我没有任何本地文件夹。我尝试列出所有隐藏文件夹,但没有找到任何本地文件夹或垃圾文件夹。删除的文件是否存储在其他地方,或者如果找不到垃圾桶,如何从删除的文件中恢复空间?
我正在使用终端。
答案1
作者前注:
通读这篇文章,直到找到满意的解决方案。如果没有,请添加评论告诉我,我是世界上最糟糕的模仿者。此外,垃圾桶并不是占用您所有空间的东西。您没有创建垃圾桶,下面是如何创建垃圾桶的说明。在终端中,当您删除某些内容时,它会永远消失,除非您使用类似(见下文);)
的恢复程序。foremost
垃圾文件夹的位置
垃圾文件夹位于/home/username/.local/share/Trash/
。由于您是从终端运行的,因此此文件夹可能不存在,但请继续阅读!只有在使用 GUI 将文件移动到那里后才会创建它(我对这部分不是 100% 确定,但我的 LXDE 设置仅在我使用文件管理器将文件移动到那里时才创建它)。
解释:
感谢@Zacharee1,我意识到了你的问题的真正本质。谢谢@Zacharee1。因此,终端中不存在垃圾文件夹,因此你必须自己创建垃圾文件夹,否则就得忍受永远丢失重要文件的危险。当然,这意味着空间使用不是由此引起的。
如果您已经创建了垃圾文件夹:
垃圾文件夹中的项目将位于另一个文件夹(即items
文件夹)中。现在,如果您想清除它,请使用两个单独的命令。
rm /home/username/.local/share/Trash/items/*
rm /home/username/.local/share/Trash/info/*
如果您只想恢复一些文件:
查看取证程序foremost
。您可以使用
sudo apt-get install foremost
查看在线使用说明、使用页面man
或查看下面我对其工作原理的极其有限的理解。我要强调的是,我刚刚发现这个,对这个领域并不了解,所以不要认为我说的一切都是正确的。在 HowToForge (https://www.howtoforge.com/recover-deleted-files-with-foremost)它会告诉你运行
foremost -t filetype -i /dev/sda1
(显然)将 filetype 替换为您需要恢复的文件类型。例如,如果我想恢复pdf
s,我会这样做
foremost -t pdf -i /dev/sda1
您将在当前目录中名为 的文件夹中找到已恢复的内容output
。如果您想在同一目录中多次执行此操作,请执行
foremost -t filetype -T -i /dev/sda1
额外的 -T 代表时间戳,因此单独的输出不会相互混淆。为了更好地理解foremost
,请查看提供的链接或进行自己的研究。enter code here
如果您没有创建垃圾文件夹(但您需要一个):
这个人可能就是你!所以,你可能要尝试两件不同的事情。
第一个,也可能是最不吸引人的,就是形象地创建自己的垃圾文件夹,为其设置一个计时器,并设置一个系统来删除里面的文件。您可以通过向 中添加一个脚本来实现这一点crontab
,该脚本的计时器为 1 个月。当计时器足够长时,BAM,
rm /path/to/trash/*
如果你不想自己动手:
好了,士兵!有几件事你需要知道。。crontab
一个有用的工具,可让您在启动时运行脚本和命令。我们可能会使用它。我刚刚提出的想法有一个很大的缺陷。计时器只有在您的计算机开启时才会运行。啊哈,我有一个(稍微)更好的主意!
稍微好一点的想法!
好吧,这将涉及一个 Python 脚本和一个!太好了!您将需要在与此相同的文件夹中创建.txt
一个名为的空文件。因此,基本上,这些是内容:txt
garbage.txt
#!/usr/bin/env python3
#Comment: This Will Be Called Trash.py
import datetime
import subprocess
with open("garbage.txt", "r+") as garbage:
x = int(garbage.read(1))
now = datetime.datetime.now()
month = now.month
if month != x:
subprocess.Popen(['rm', '-rf', '/where/ever/trash/folder/is/)
subprocess.Popen(['mkdir', '/where/ever/trash/folder/is/'])
with open("garbage.txt", 'w+') as sadness:
sadness.write(str(month))
现在,将此脚本添加到crontab
。为了方便读者,我假设您不知道如何执行此操作。因此,在 的同一目录中创建一个 bash 脚本trash.py
。将其命名为trashshell.sh
。在其中写入:
#!/bin/bash
python3 trash.py
crontab -e
保存,然后在终端中输入命令。选择终端编辑器 nano,然后输入
@reboot sh /path/to/trashshell.sh
希望这有帮助!
可选:轻松删除!
放这个:
function trasher(){
mv "$1" /path/to/trash
}
进入你的 .profile 或 .bashrc(如果存在,则执行 bashrc)。这将帮助你将项目移至垃圾桶trasher itemname
。例如,trasher new.txt
这可能是一个错误的想法!
尝试在垃圾文件夹所在的位置重新创建垃圾文件夹,例如Trash
文件夹、expunged
文件夹、files
文件夹和info
文件夹。等待 30 天。这可能行不通!!!
作者注:
不要复制粘贴我写的代码。缩进几乎 100% 乱了,因为无法在 Stack Overflow 上进行格式化!求教!!!如果你创建了自己的垃圾文件夹,并且喜欢冒险,你可以稍微改变一些东西,比如计时器的长度。
答案2
据我所知,垃圾只是一个索引功能。当文件从文件管理器中删除时,它会被移动到~/.local/share/Trash/
,其目录结构保持不变。(例如:如果你删除~/testfolder/testfile.sh
,testfile.sh
将转到~/.local/share/Trash/testfolder/testfile.sh
。)
(如果您使用sudo
或gksudo
打开文件管理器,/root/.local/share/Trash
则是该会话使用的垃圾目录。)
不幸的是,这是 GUI 的问题。终端无法做到这一点。rm
实际上删除了文件;它不会将其移动到垃圾文件夹以便稍后恢复或删除,而是完全跳过垃圾文件夹。当然,您可以恢复文件,但前提是您没有覆盖它们曾经占用的硬盘空间。
您必须在使用终端时更加小心,因为它的设计并不完全是为了易用性和便利性。由于没有垃圾,删除文件会更加危险。此外,由于没有垃圾,因此没有垃圾可以删除以节省空间。其他东西正在填满您的硬盘。
答案3
打开 nautilus 或任何你使用的文件管理器并在地址栏中输入(ctrl+l)
trash:///
那你就应该进垃圾桶了。
我将 nemo(Linux Mint 中的文件管理器)中垃圾箱的内容与 的输出内容进行了比较ll -R ~/.local/share/trash
。看起来我在文件管理器中看到的内容位于 子文件夹中info
。
从终端:
rm -rf ~/.local/share/Trash/info
但正如你所说,你没有任何垃圾。除非你从终端中删除了文件,否则这很奇怪。如果你这样做了,文件实际上被删除了,而不是被移到了垃圾桶!
~/.local/
全新安装后服务器安装中没有