标签 删除 下的文章

如果你想 在 Ubuntu 上使用终端卸载软件,可以使用:

sudo apt remove package_name

但是在很多论坛,你可能会看到别人说,如果你想彻底删除软件就用 apt purge

你可能会觉得很困惑,因为 apt purgeapt remove 看起来是一样的。

sudo apt purge package_name

为什么会有两个如此像的命令来删除软件包呢?两者之间有什么不同呢?下面将为你揭晓。

apt-remove 和 apt-purge 有什么不同?

apt-removeapt-purge 的相同之处就是都可以卸载软件包,但是运行 apt-purge 除了可以删除安装包之外,还可以清除相关的配置文件。这是两者之间唯一的不同点。要注意的是这两条命令都不能删除用户主目录中相关的应用程序文件。

你是否遇到过这样的情况,卸载一个软件然后重新安装,却发现之前的设置都还在。这是因为用 apt remove 不能删除该软件的相关配置文件。

哪些东西被删除了?哪些还在?

我分享一个使用 apt removeapt purge 两个命令分别卸载 mplayer 这个软件的实际例子。重点是看每次操作后还残余哪些文件。

这是删除前的文件:

mplayer before removal

现在运行 apt remove 这个命令:

apt uninstall package ubuntu

下面的是还残留在系统中的文件:

files after mplayer removal

我们可以看到,有两个地方残留着 mplayer 的文件: /etc/home/abhishek

这次我们重新安装 mplayer,然后用 apt purge 来卸载软件。

apt purge command

现在让我们看看与 mplayer 相关的文件:

files after mplayer removal

我们可以看到 /etc 目录下的文件已经没有了。

但是在主目录中的文件呢?apt purge 会删除它们吗?

答案是否定的。apt 命令不会删除主目录中的配置文件。所以它们仍然在系统中,除非你手动删除。但是这些文件所占的空间真的很小,几乎不占磁盘空间。

值得注意的是,不是所有的软件在主目录或者 /etc 目录下都有配置文件。

使用 apt remove 或者 apt purge 的效果

我能想到的一个实际例子就是 Discord,你用 deb 文件 在 Ubuntu 上安装了 Discord。然后登录自己的账号,之后又卸载并重新用 deb 文件安装。

现在如果你打开 Discord,你会发现你的账号自动登录了。是不是觉得很奇怪?

这是个功能,像一些软件,比如 Discord、VirtualBox,它们会提供更新,就是卸载现在的版本然后下载新的(尽管你不知道它内部怎么进行的),但是它在卸载的时候,这些软件的配置文件没有被删除,所以等你打开这些软件的时候就会自动登录。

当你想卸载一个软件,但是想保留你过去使用该软件留下的配置文件的时候,你就可以用 apt remove

但是,有时候用它不能满足你的需求,比如当你没有配置好一个软件的时候,你想要重新开始,这个时候用 apt purge 就比较合适。

运行 apt purge 是否可以用通配符删除?

当你删除一个包的时候,它会提示 removing package-name*。这意味着它会删除以这个包名开头的所有文件。

apt purge wild card

我在手册页之类的文档中没有找到关于这个问题的答案。所以我自己做了一个小测试,我安装了 espeak 和 espeak-ng 这两个软件,espeak* 应该可以通配扩展到 espeak-ng。

但是当我用 apt purge 删除 espeak 包时,espeak-ng 包还在,没有被一并删除。因此,这似乎是有一种防止通配符的扩展的机制。

那么,你应该使用 apt remove 还是 apt purge 呢?

很少有人会一直使用 apt purge

在我看来,一般清况下,用 apt remove 就可以了,但是当你想删除那些自定义配置文件时,你就得用 apt purge

不管是用 apt remove 还是 apt purge,你都需要从用户的主目录中删除残余的配置文件,并运行 apt autoremove 来清除任何依赖的包。

现在到你啦。你现在对 apt removeapt purge 的区别更加了解吗?你更喜欢使用哪一个呢?


via: https://itsfoss.com/apt-remove/

作者:Abhishek Prakash 选题:lkxed 译者:Tingze-G 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

不再使用某个应用程序了?删除它吧。

卸载不再使用的应用是 最简单释放磁盘空间的方法 ,而且可以使系统保持整洁。

在此篇入门教程中,我会介绍几种不同在 Ubuntu 上卸载应用程序的方法。

在 Ubuntu 中有几种方法 安装应用 ,同意也有以下几种方法卸载应用:

  • 从 Ubuntu 软件中心 Software Center 卸载应用(桌面用户)
  • apt remove 命令卸载应用
  • 用命令行中删除 Snap 应用(中级到高级用户)

让我们来一个一个了解这些方法。

方法 1:用 Ubuntu 软件中心卸载应用

在左侧栏或者菜单中找到 Ubuntu 软件中心 Software Center ,打开它。

已安装 Installed 栏中列出了已安装的应用。

如果你要找的应用不在 已安装 Installed 栏中,可以使用搜索查找应用。

打开已经安装的应用,有一个 移除 Remove 选项,点击它。

这会请求输入账户密码,输入后应用会在几秒内删除。

方法2: Ubuntu 命令行卸载应用

安装应用时使用 apt-get install 或者 apt install 。 卸载应用时使用 apt-get remove 或者 apt remove ,而不是 apt-get uninstall

按照以下方式使用命令:

sudo apt remove program_name

执行此操作会请求你的账户密码。当输入密码时,屏幕上不会有提示。输入完后按下回车。

待删除的应用不会立刻被删除。你需要确认。当询问你的确认时,请输入回车或者按下 Y

请在命令行中输入准确的包的名字,不然会出现 “不能找到软件包的错误” 错误 。

不要担心记不住具体的应用名字,你可以使用超级有用的 Tab 补全应用名称。 Tab 是你必须知道的 Linux 命令行技巧 之一。

你只需要输入想要卸载应用的前几个字母,然后按下 tab ,会提示以这几个字母开头的已安装应用程序。

找到要卸载的应用名称,输入完整的应用名称然后卸载。

如果不知道具体的应用名称或者开头字母,你可以 列出 Ubuntu 中所有已安装的包 ,然后查找符合你记忆的应用名称。

比如,下图的命令会列出所有已安装的应用名称中包含 ‘my’ 的应用,不仅仅是以 ‘my’ 开头的应用。

apt list --installed | grep -i my

这非常酷炫对不对?在 Ubuntu 中使用卸载命令时请注意应用名。

补充:使用 apt purge 卸载应用(进阶用户)

当在 Ubuntu 中卸载应用时,应用程序会被卸载,但是会留下细小的、修改过的用户配置文件。这些文件是故意被留下的,因为当你再次安装同样的应用时,会使用这些遗留的配置文件。

如果你想完全卸载应用,你可以使用 apt purge 命令代替 apt remove 命令,或者在 apt remove 命令后再使用它。

sudo apt purge program_name

注意 apt purge 令不会删除保存在用户目录下的数据或者配置文件。

方法3: Ubuntu 中卸载 Snap 应用

前面的几种方式可用于使用 apt 命令、 软件中心 Software Center 或者直接使用 deb 文件安装的应用。

Ubuntu 也推出了一个名为 Snap 的包管理系统。在 软件中心 Software Center 中的大部分应用都是 Snap 包格式。

你可以使用 软件中心 Software Center 轻松地卸载这些应用,也可以使用命令行卸载。

列出所有已经安装的 Snap 包名字:

snap list

选择你想要卸载的应用,然后卸载,这不会要求你确认是否删除。

sudo snap remove package_name

妙招:用一个神奇的命令清理系统

到此你已经学会怎么卸载应用,现在使用一个简单的命令清理卸载残留,比如不再用到的依赖或 Linux 内核头文件。

在终端输入如下命令:

sudo apt autoremove

这条命令很安全,而且会释放几百 MB 的磁盘空间。

总结

本文一共介绍了三种卸载应用的方法,包括通过图形界面卸载、命令行卸载,以便你了解所有方式。

希望此篇教程对 Ubuntu 初学者有所帮助,欢迎提出问题和建议。


via: https://itsfoss.com/uninstall-programs-ubuntu/

作者:Abhishek Prakash 选题:lujun9972 译者:amagicowboy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

用这些开源工具从你的硬盘驱动器中擦除数据。

 title=

保持数据安全的最好方法之一是只向加密的硬盘驱动器写入数据。在一个标准的硬盘上,只要把硬盘挂载就可以查看数据,就像 U 盘一样,甚至可以用 ScalpelTestdisk 等工具显示和恢复已删除的数据。但是在一个加密的驱动器上,如果没有解密密钥(通常是你在挂载驱动器时输入的密码),数据是无法被读取的。

加密可以在你安装操作系统时建立,有些操作系统甚至可以在安装后的任何时候激活加密功能。

但是,当你卖掉一台电脑或更换一个一开始就没有被加密的驱动器时,你该怎么办呢?

与从一开始就加密你的数据相比,最好的办法是在你用完硬盘后删除数据。

负责任的看管者

我经常被要求帮助客户升级一台旧电脑。无一例外,他们更愿意帮助我回收它们,使它们能被别人使用。我很乐意翻新这些旧电脑,用较新的固态驱动器来改装它们,极大地提高性能。

然而,把一个旧驱动器扔进垃圾桶并不是一个好主意。它需要被擦除,然后被妥善处理。我没有把硬盘留在原来的电脑里,而是把它们取出来,放在一个硬盘盒里,然后把它们连接到我的 Linux 电脑上。有几个 Linux 工具可以很容易地完成这个任务。其中一个是 Gnu Shred

GNU Shred

$ sudo shred -vfz /dev/sdX

Shred 有许多选项:

  • -n - 覆盖的次数。默认是三次。
  • -u - 覆盖并删除。
  • -s - 要粉碎的字节数。
  • -v - 显示扩展信息。
  • -f - 必要时强制改变权限以允许写入。
  • -z - 最后用 0 覆盖来隐藏粉碎。

使用 shred --help 获取更多信息

ShredOS

ShredOS 是一个 即用 Live Linux 发行版,它的唯一目的是清除驱动器的全部内容。它是在一个名为 DBAN 的类似发行版停止维护后开发的。它使用 nwipe 应用,它是 DBAN 的 dwipe 的一个分叉。你可以通过下载 32 位或 64 位镜像,并在 Linux 和 macOS 上使用 dd 命令将其写入驱动器来制作一个可启动的 USB 驱动器:

$ sudo dd if=shredos.img of=/dev/sdX bs=4M status=progress

另外,你可以在 Linux、macOS 和 Windows 上使用 Etcher 工具烧录。

dd 命令

清除驱动器的一个常见方法是使用 Linux 的 dd 命令。几乎所有的 Linux 安装都安装了 dd 工具。确保该驱动器没有被挂载。

$ sudo umount /dev/sdXY -l

如果你想在整个目标磁盘上写零,执行以下命令。这可能需要一个整个通宵。

$ sudo dd if=/dev/urandom of=/dev/sdX bs=10M

警告:请确保你知道你在系统中的位置,并以正确的驱动器为目标,这样你就不会意外地删除自己的数据。

Nvme-cli

如果你的计算机包含一个较新的 NVMe 驱动器,你可以安装 nvme-cli 程序,并使用 sanitize 选项来清除你的驱动器。

nvme sanitize help 命令提供了选项列表:

  • --no-dealloc-d - 净化后不解除分配。
  • --oipbp-i - 每次覆写后反转模式。
  • --owpass=-n - 覆写次数。
  • --ause-u - 允许无限制净化退出。
  • --sanact=-a - 净化动作。
  • --ovrpat=-p - 覆写模式。

下面是我使用的命令:

$ sudo nvme sanitize /dev/nvme0nX

这里的警告与格式化过程相同:首先备份重要的数据,因为这个命令会擦除这些数据!

信息管理

你保存在计算机上的信息是很重要的。它属于你,也属于其他任何人。当你卖掉一台电脑或处理一个硬盘时,确保你已经用这些很棒的工具之一清除了你的数据。


via: https://opensource.com/article/21/10/linux-tools-erase-data

作者:Don Watkins 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本教程讲述了如何在 Linux 终端中安全地删除文件和文件夹。

 title=

要想使用图形化界面删除计算机上的文件,你可能会直接将文件或文件夹拖拽到 “垃圾箱” 或 “回收站”。或者你也可以选择要删除的文件或文件夹,右键单击并选择 删除

而在终端中删除文件或文件夹时并没有垃圾箱一说(至少默认情况下没有)。在图形化桌面上,Trash(即垃圾箱文件夹)是一个受保护的目录,保护机制可以防止用户不小心将该目录删除,或将其从默认位置移动从而导致找不到它。Trash 本质不过是一个被高度管理的文件夹,因此你可以创建自己的 Trash 文件夹以在终端中使用。

为终端设置一个垃圾箱

在家目录中创建一个名为 Trash 的目录:

$ mkdir ~/Trash

删除文件

要删除文件或文件夹时,使用 mv 命令将文件或文件夹移至 Trash 中:

$ mv example.txt ~/Trash

永久删除文件或文件夹

当你准备从系统中永久删除某个文件或文件夹时,可以使用 rm 命令清除垃圾箱文件夹中的所有数据。通过将 rm 命令指向星号(*),可以删除 Trash 文件夹内的所有文件和文件夹,而不会删除 Trash 文件夹本身。因为用户可以方便且自由地创建目录,所以即使不小心删除了 Trash 文件夹,你也可以再次新建一个。

$ rm --recursive ~/Trash/*

删除空目录

删除空目录有一个专门的命令 rmdir,它只能用来删除空目录,从而保护你免受递归删除错误的影响。

$ mkdir full
$ touch full/file.txt
$ rmdir full
rmdir: failed to remove 'full/': Directory not empty

$ mkdir empty
$ rmdir empty

更好的删除方式

此外还有一些并没有默认安装在终端上的 删除文件命令,你可以从软件库安装它们。这些命令管理和使用的 Trash 文件夹与你在桌面模式使用的是同一个(而非你自己单独创建的),从而使删除文件变得更加方便。

$ trash ~/example.txt
$ trash --list
example.txt
$ trash --empty

via: https://opensource.com/article/21/8/remove-files-linux-terminal

作者:Seth Kenlon 选题:lujun9972 译者:unigeorge 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这篇文章介绍了 testdisk,这是恢复最近删除的文件(以及用其他方式修复分区)的工具之一,非常方便。

当你在 Linux 系统上删除一个文件时,它不一定会永远消失,特别是当你最近才刚刚删除了它的时候。

除非你用 shred 等工具把它擦掉,否则数据仍然会放在你的磁盘上 —— 而恢复已删除文件的最佳工具之一 testdisk 可以帮助你拯救它。虽然 testdisk 具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,但它也经常被用来恢复被误删的文件。

在本篇文章中,我们就来看看如何使用 testdisk 恢复已删除的文件,以及该过程中的每一步是怎样的。由于这个过程需要不少的步骤,所以当你做了几次之后,你可能会觉得操作起来会更加得心应手。

安装 testdisk

可以使用 apt install testdiskyum install testdisk 等命令安装 testdisk。有趣的是,它不仅是一个 Linux 工具,而且还适用于 MacOS、Solaris 和 Windows。

文档可在 cgsecurity.org 中找到。

恢复文件

首先,你必须以 root 身份登录,或者有 sudo 权限才能使用 testdisk。如果你没有 sudo 访问权限,你会在这个过程一开始就被踢出,而如果你选择创建了一个日志文件的话,最终会有这样的消息:

TestDisk exited normally.
jdoe is not in the sudoers file.  This incident will be reported.

当你用 testdisk 恢复被删除的文件时,你最终会将恢复的文件放在你启动该工具的目录下,而这些文件会属于 root。出于这个原因,我喜欢在 /home/recovery 这样的目录下启动。一旦文件被成功地还原和验证,就可以将它们移回它们的所属位置,并将它们的所有权也恢复。

在你可以写入的选定目录下开始:

$ cd /home/recovery
$ testdisk

testdisk 提供的第一页信息描述了该工具并显示了一些选项。至少在刚开始,创建个日志文件是个好主意,因为它提供的信息可能会被证明是有用的。下面是如何做的:

Use arrow keys to select, then press Enter key:
>[ Create ] Create a new log file
 [ Append ] Append information to log file
 [ No Log ] Don’t record anything

左边的 > 以及你看到的反转的字体和背景颜色指出了你按下回车键后将使用的选项。在这个例子中,我们选择了创建日志文件。

然后会提示你输入密码(除非你最近使用过 sudo)。

下一步是选择被删除文件所存储的磁盘分区(如果没有高亮显示的话)。根据需要使用上下箭头移动到它。然后点两次右箭头,当 “Proceed” 高亮显示时按回车键。

Select a media (use Arrow keys, then press Enter):
 Disk /dev/sda - 120 GB / 111 GiB - SSD2SC120G1CS1754D117-551
>Disk /dev/sdb - 500 GB / 465 GiB - SAMSUNG HE502HJ
 Disk /dev/loop0 - 13 MB / 13 MiB (RO)
 Disk /dev/loop1 - 101 MB / 96 MiB (RO)
 Disk /dev/loop10 - 148 MB / 141 MiB (RO)
 Disk /dev/loop11 - 36 MB / 35 MiB (RO)
 Disk /dev/loop12 - 52 MB / 49 MiB (RO)
 Disk /dev/loop13 - 78 MB / 75 MiB (RO)
 Disk /dev/loop14 - 173 MB / 165 MiB (RO)
 Disk /dev/loop15 - 169 MB / 161 MiB (RO)
>[Previous]  [  Next  ]  [Proceed ]  [  Quit  ]

在这个例子中,被删除的文件在 /dev/sdb 的主目录下。

此时,testdisk 应该已经选择了合适的分区类型。

Disk /dev/sdb - 500 GB / 465 GiB - SAMSUNG HE502HJ

Please select the partition table type, press Enter when done.
 [Intel  ] Intel/PC partition
>[EFI GPT] EFI GPT partition map (Mac i386, some x86_64...)
 [Humax  ] Humax partition table
 [Mac    ] Apple partition map (legacy)
 [None   ] Non partitioned media
 [Sun    ] Sun Solaris partition
 [XBox   ] XBox partition
 [Return ] Return to disk selection

在下一步中,按向下箭头指向 “[ Advanced ] Filesystem Utils”。

[ Analyse  ] Analyse current partition structure and search for lost partitions
>[ Advanced ] Filesystem Utils
 [ Geometry ] Change disk geometry
 [ Options  ] Modify options
 [ Quit     ] Return to disk selection

接下来,查看选定的分区。

Partition                  Start        End    Size in sectors
> 1 P Linux filesys. data         2048  910155775  910153728 [drive2]

然后按右箭头选择底部的 “[ List ]”,按回车键。

[  Type  ]  [Superblock] >[  List  ]  [Image Creation]  [  Quit  ]

请注意,它看起来就像我们从根目录 / 开始,但实际上这是我们正在工作的文件系统的基点。在这个例子中,就是 /home

Directory /   <== 开始点

>drwxr-xr-x     0     0      4096 23-Sep-2020 17:46 .
 drwxr-xr-x     0     0      4096 23-Sep-2020 17:46 ..
 drwx———     0     0     16384 22-Sep-2020 11:30 lost+found
 drwxr-xr-x  1008  1008      4096  9-Jul-2019 14:10 dorothy
 drwxr-xr-x  1001  1001      4096 22-Sep-2020 12:12 nemo
 drwxr-xr-x  1005  1005      4096 19-Jan-2020 11:49 eel
 drwxrwxrwx     0     0      4096 25-Sep-2020 08:08 recovery
...

接下来,我们按箭头指向具体的主目录。

drwxr-xr-x  1016  1016      4096 17-Feb-2020 16:40 gino
>drwxr-xr-x  1000  1000     20480 25-Sep-2020 08:00 shs

按回车键移动到该目录,然后根据需要向下箭头移动到子目录。注意,如果选错了,可以选择列表顶部附近的 .. 返回。

如果找不到文件,可以按 /(就像在 vi 中开始搜索时一样),提示你输入文件名或其中的一部分。

Directory /shs     <== current location
                                                   Previous
...
 -rw-rw-r—  1000  1000       426  8-Apr-2019 19:09 2-min-topics
>-rw-rw-r—  1000  1000     24667  8-Feb-2019 08:57 Up_on_the_Roof.pdf

一旦你找到需要恢复的文件,按 c 选择它。

注意:你会在屏幕底部看到有用的说明:

Use Left arrow to go back, Right to change directory, h to hide deleted files
    q to quit, : to select the current file, a to select all files
    C to copy the selected files, c to copy the current file <==

这时,你就可以在起始目录内选择恢复该文件的位置了(参见前面的说明,在将文件移回原点之前,先在一个合适的地方进行检查)。在这种情况下,/home/recovery 目录没有子目录,所以这就是我们的恢复点。

注意:你会在屏幕底部看到有用的说明:

Please select a destination where /shs/Up_on_the_Roof.pdf will be copied.
Keys: Arrow keys to select another directory
      C when the destination is correct
      Q to quit
Directory /home/recovery    <== 恢复位置

一旦你看到 “Copy done! 1 ok, 0 failed” 的绿色字样,你就会知道文件已经恢复了。

在这种情况下,文件被留在 /home/recovery/shs 下(起始目录,附加所选目录)。

在将文件移回原来的位置之前,你可能应该先验证恢复的文件看起来是否正确。确保你也恢复了原来的所有者和组,因为此时文件由 root 拥有。

注意: 对于文件恢复过程中的很多步骤,你可以使用退出(按 q 或“[ Quit ]”)来返回上一步。如果你愿意,可以选择退出选项一直回到该过程中的第一步,也可以选择按下 ^c 立即退出。

恢复训练

使用 testdisk 恢复文件相对来说没有痛苦,但有些复杂。在恐慌时间到来之前,最好先练习一下恢复文件,让自己有机会熟悉这个过程。


via: https://www.networkworld.com/article/3575524/recovering-deleted-files-on-linux-with-testdisk.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你可能忘记了删除计算机上某个目录中不再需要的文件的操作。这可能是“下载”或任何其他目录。它可能已经增长了一段时间。

即便有足够的存储空间,你也应该删除它们,因为这会在列出文件时降低系统速度。同样,当一个目录中有成千上万个文件时,它可能很会很臃肿。

当你不知道要检查的文件名时,很难在特定目录中找到文件。

我们可以通过结合使用 find 命令和一些组合来做到这一点,我们过去已经写过一篇文章。

今天,我们将向你展示如何在 Linux 上使用 Tmpwatch 程序来实现这一目标。

什么是 tmpwatch

tmpwatch 会在指定目录中递归删除指定时间段内未被访问的文件。通常,它用于自动清除临时文件系统目录,例如 /tmp/var/tmp

它只会删除空目录、常规文件和符号链接。它不会切换到其他文件系统,并避开了属于根用户的 lost+found 目录。

默认情况下,tmpwatch 会根据文件的 atime(访问时间)而不是 mtime(修改时间)删除文件。

你可以在 tmpwatch 命令中添加其他参数来更改这些行为。

警告: 请不要在 / 中运行 tmpwatchtmpreaper,因为该程序中没有防止这种情况的机制。

如何在 Linux 上安装 tmpwatch

可以在官方仓库中按以下方式安装 tmpwatch

对于 RHEL/CentOS 6 系统,请使用 yum 命令安装 tmpwatch

$ sudo yum install -y tmpwatch

对于 Debian 和 Ubuntu 系统,请使用 apt 命令apt-get 命令 安装 tmpreaper

$ sudo apt-get install tmpreaper

对于 openSUSE 系统,请使用 zypper 命令 安装 tmpwatch

$ sudo zypper install -y tmpwatch

对于 Fedora 系统,请使用 dnf 命令 安装 tmpwatch

$ sudo dnf install -y tmpwatch

请注意: 如果你使用的是基于 Debian 的系统,请使用 tmpreaper 而不是 tmpwatch。所有示例都可以如预期工作。

了解关键选项和参数

  • atime(文件上次访问时间):显示命令或脚本等任意进程最后一次访问文件中数据的时间。
  • mtime(文件上次修改时间):显示修改文件内容或保存文件的时间。除非是更改文件属性,否则大多数情况下 ctimemtime 会相同。
  • ctime(文件上次更改时间):显示文件元数据更改时间。这意味着更改文件属性的时间(如所有权或组等)。
  • dirmtime(目录的上次修改时间):显示目录的上一次修改时间。

时间参数定义删除文件的阈值。

  • d – 天
  • h – 小时
  • m – 分钟
  • s – 秒

如何使用 tmpwatch 命令删除一段时间未访问的文件

正如我在本文开头所说,tmpwatch 默认根据文件访问时间(atime)来删除文件。另外,由于小时是默认参数,因此如果使用小时单位,那么无需在时间上添加后缀。

例如,运行以下命令以递归方式删除过去 5 个小时未访问的文件。

# tmpwatch 5 /tmp

运行以下命令删除最近 10 个小时未修改的文件。如果要使用修改时间(mtime)来删除文件,那么需要在 tmpwatch 命令中添加 -m 选项。

# tmpwatch -m 10 /home/daygeek/Downloads

如何使用 tmpwatch 命令删除超过 “X” 天未访问的文件

如果要使用天数删除文件,那么需要添加后缀 d。以下示例删除了 30 天以上的文件。

# tmpwatch 30d /home/daygeek/Downloads

如何使用 tmpwatch 命令删除一段时间内未访问的所有文件

以下命令将基于修改时间(mtime)删除所有类型的文件,而不仅仅是常规文件、符号链接和目录。

# tmpwatch -am 12 /tmp

如何在 tmpwatch 中排除目录

以下命令将删除过去 10 个小时未修改的所有文件,并排除目录。

# tmpwatch -am 10 --nodirs /home/daygeek/Downloads

如何在 tmpwatch 中排除特定路径

以下命令将删除过去 10 个小时未被修改的所有文件,除了下面排除的文件夹。

# tmpwatch -am 10 --exclude=/home/daygeek/Downloads/Movies /home/daygeek/Downloads

如何在 tmpwatch 中排除特定模式

以下命令将删除过去 10 小时未被修改的所有文件,除了满足下面列出的模式的文件。

# tmpwatch -am 10 --exclude-pattern='*.pdf' /home/daygeek/Downloads

如何让 tmpwatch 命令空运行

如果要空运行,请运行以下命令。

# tmpwatch -t 5h /home/daygeek/Downloads

如何设置 cronjob 来使用 tmpwatch 定期删除文件

默认情况下,它在 /etc/cron.daily/tmpreaper 目录下有一个 cronjob 文件。该 cronjob 根据位于 /etc/timereaper.conf 中的配置文件工作。你可以根据需要自定义文件。

它每天运行一次,并删除 7 天之前的文件。

另外,如果你希望常规执行某项操作,那么可以根据需要手动添加一个 cronjob。

# crontab -e

0 10 * * * /usr/sbin/tmpwatch 15d /home/daygeek/Downloads

上面的 cronjob 将在每天上午 10 点删除早于 15 天的文件。


via: https://www.2daygeek.com/how-to-remove-files-older-than-n-days-using-tmpwatch-tmpreaper-on-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出