如何在Linux的目录树中找到最旧的文件

时间:2020-03-21 11:43:41  来源:igfitidea点击:

在Linux的目录树中查找最旧的文件

要在目录中找到最早的文件,例如/home/sk/theitroad /,请运行:

$find /home/sk/theitroad/-type f -printf '%T+ %p\n' | sort | head -n 1

让我们分解该命令,看看每个命令行参数的作用。

其中

  • 查找-在目录层次结构中搜索文件。
  • /home/sk/theitroad /-搜索位置。
  • 类型-f-仅搜索常规文件。
  • -printf'%T +%p \ n'-打印文件的上次修改日期和时间,以+符号分隔。 (例如2014-07-22 + 13:42:40.0000000000)。此处,%p表示文件名。 \ n表示新行。
  • 排序| head -n 1-sort命令对输出进行排序,并将输出发送到head命令以显示最早的文件。其中-n 1仅表示一个文件,例如:最旧的文件。

我们可能已经知道,Explainshell可以查找Linux命令的每个部分的功能。

上面命令的示例输出为:

2014-07-22+13:42:40.0000000000 /home/sk/theitroad/Absolute FreeBSD_ 2nd Edition.pdf

如我们在上面的输出中看到的,Absolute FreeBSD_ 2nd Edition.pdf是/home/sk/theitroad /目录中最旧的文件。
请注意,Linux使用文件创建日期找不到最旧的文件。
而是使用文件修改日期来查找它。

同样,要查找给定目录中最老的五个文件,只需运行:

$find /home/sk/theitroad/-type f -printf '%T+ %p\n' | sort | head -n 5

输出示例:

2014-07-22+13:42:40.0000000000 /home/sk/theitroad/Absolute FreeBSD_ 2nd Edition.pdf
2015-11-28+21:03:05.0000000000 /home/sk/theitroad/Etcher-linux-x64.AppImage
2015-12-14+18:28:20.5162190000 /home/sk/theitroad/ubuntu.jpg
2015-12-18+18:14:46.5931480000 /home/sk/theitroad/Marconi Union - Sleepless.mp3
2016-03-17+19:28:27.8193330000 /home/sk/theitroad/The Devops toolkit.pdf

最旧的文件将首先显示。

要在根(/)文件系统中找到最早的文件,请运行:

$find/-type f -printf '%T+ %p\n' | sort | head -n 1

更新:

另一个Linux用户在下面的注释部分中指出了如何在目录中查找最早或者最新的文件。
这比我的方法容易得多。

要查找目录中最旧的文件,请转到该目录并运行:

$ls -lt | tail -1

要查找目录中的最新文件:

$ls -ltr | tail -1