找不到我的垃圾桶?

Lar*_*erg 5 trash

我试图找到我的垃圾桶以释放光盘上的一些空间。我已经尝试了建议的命令如何使用终端清空垃圾箱?但似乎我没有任何本地文件夹。我也尝试列出所有隐藏文件夹,但没有找到任何本地或垃圾文件夹。删除的文件是否存储在其他地方,或者如果找不到垃圾箱,如何从删除的文件中恢复空间?

我正在使用终端。

Jam*_*ond 6

前作者注:

通读本文的所有内容,直到找到满意的解决方案。如果没有,请添加评论告诉我我是世界上最糟糕的人。;) 此外,垃圾箱不会占用您所有的空间。您还没有创建垃圾桶,下面是如何制作垃圾桶的说明。在终端中,当您删除某些内容时,它会永远消失,除非您使用类似foremost(见下文)的恢复程序。

垃圾箱文件夹的位置

垃圾文件夹位于/home/username/.local/share/Trash/。由于您从终端运行,此文件夹可能不存在,但请继续阅读!只有在使用 GUI 将文件移动到那里后才会创建它(我不是 100% 了解这部分,但我的 LXDE 设置仅在我使用文件管理器将文件移动到那里时才创建它)。

解释:

由于@Zacharee1,我已经意识到您问题的真实性质。谢谢@Zacharee1。因此,终端设备中不存在垃圾文件夹,因此您必须创建自己的文件夹,否则可能会面临永远丢失重要文件的危险。当然,这意味着空间使用不是由此引起的。

如果您已经创建了垃圾箱文件夹:

Trash 文件夹中的项目将位于另一个文件夹中,即该items文件夹。现在,如果您想清除它,请使用两个单独的命令。

rm /home/username/.local/share/Trash/items/*
rm /home/username/.local/share/Trash/info/*
Run Code Online (Sandbox Code Playgroud)

如果您只想恢复某些文件:

看看取证程序foremost。你可以下载

sudo apt-get install foremost
Run Code Online (Sandbox Code Playgroud)

查看使用它的在线说明,使用该man页面或查看下面我对其工作原理的极其有限的理解。让我强调一下,我刚刚发现了这一点,并且在这方面并不了解,所以不要认为我说的一切都是真的。在 HowToForge ( https://www.howtoforge.com/recover-deleted-files-with-foremost ) 它告诉你运行

foremost -t filetype -i /dev/sda1
Run Code Online (Sandbox Code Playgroud)

(显然)将 filetype 替换为您需要恢复的文件类型。例如,如果我想恢复pdfs 我会做

foremost -t pdf -i /dev/sda1
Run Code Online (Sandbox Code Playgroud)

您将在您所在目录的文件夹中找到恢复的内容output。如果要在同一目录中多次执行,请执行

foremost -t filetype -T -i /dev/sda1
Run Code Online (Sandbox Code Playgroud)

额外的 -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))
Run Code Online (Sandbox Code Playgroud)

现在,将此脚本添加到crontab. 为了读者的利益,我假设您不知道如何执行此操作。因此,在与 .bashrc 相同的目录中创建一个 bash 脚本trash.py。叫它trashshell.sh。在里面写:

#!/bin/bash
python3 trash.py
Run Code Online (Sandbox Code Playgroud)

保存,然后在crontab -e终端中输入命令。选择终端编辑器nano然后写

@reboot sh /path/to/trashshell.sh
Run Code Online (Sandbox Code Playgroud)

希望这有帮助!

可选:轻松删除!

把这个:

function trasher(){
     mv "$1" /path/to/trash
}
Run Code Online (Sandbox Code Playgroud)

进入您的 .profile 或您的 .bashrc (如果存在,请执行 bashrc )。这将使您可以使用 将项目移至垃圾箱trasher itemname。例如,trasher new.txt

一个可能是错误的想法!

尝试在它所在的位置重新创建垃圾文件夹,例如Trash文件夹、expunged文件夹、files文件夹和info文件夹。等待 30 天。这可能行不通!!!

作者注:

不要复制粘贴我写的代码。缩进几乎 100% 搞砸了,因为无法在 Stack Overflow 上进行格式化!哪位大神教教我!!!如果您制作了自己的垃圾文件夹并且喜欢冒险,则可以稍微更改一些内容,例如计时器的长度。


The*_*rer 5

据我所知,垃圾箱只是一个索引功能。当一个文件从文件管理器中删除时,它被移动到~/.local/share/Trash/,它的目录结构保持不变。(例如:如果您删除~/testfolder/testfile.shtestfile.sh将转到~/.local/share/Trash/testfolder/testfile.sh。)

(如果您使用sudogksudo打开文件管理器,/root/.local/share/Trash则是用于该会话的垃圾目录。)

不幸的是,这是一个 GUI 的东西。终端不这样做。rm实际删除文件;它不只是将它移动到垃圾文件夹以便以后恢复或删除,它会完全跳过垃圾。当然,您可以恢复文件,但前提是您没有覆盖它们曾经占用的硬盘驱动器上的空间。

您必须在终端中更加小心,因为它的设计并不是为了易于使用和方便。由于没有垃圾,删除文件更危险。此外,由于没有垃圾箱,因此无需删除垃圾箱以节省空间。其他东西正在填满您的硬盘驱动器。