📌  相关文章
📜  linux 查找最新修改的文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:32:42.207000             🧑  作者: Mango

Linux查找最新修改的文件 - Shell/Bash

在Linux系统下,经常需要查找最新修改的文件,以便快速定位问题或者跟踪某个文件的变化记录。本文将介绍如何使用Shell/Bash在Linux系统下查找最新修改的文件。

1. 使用find命令

find命令可以在指定目录下查找符合条件的文件。我们可以使用-mtime参数来指定文件的修改时间,并以-exec参数将查找到的文件输出到一个文件中,最后使用-printf参数打印最新修改的文件。

find /path/to/directory -type f -mtime -1 -exec ls -lt {} + | sed -n '2p' | awk '{print $NF}'

解释如下:

  • /path/to/directory:待查找的目录。
  • -type f:查找的是文件,不包括目录。
  • -mtime -1:查找最近一天内修改过的文件,如果查找最近一小时内修改的文件,则可以使用-mmin -60
  • -exec ls -lt {} +:将查找到的文件按照修改时间降序排序。
  • sed -n '2p':去掉第一行,因为第一行是总文件数量。
  • awk '{print $NF}':输出最新修改的文件名。
2. 使用ls命令

与find命令不同,ls命令只能在指定的目录下查找符合条件的文件。我们可以使用-lt参数以修改时间降序排序,并使用head命令输出最新修改的文件。

ls -lt /path/to/directory | head -2 | tail -1 | awk '{print $NF}'

解释如下:

  • /path/to/directory:待查找的目录。
  • -lt:按修改时间降序排序。
  • head -2:输出前两行。
  • tail -1:去掉第一行,输出最新修改的文件名。
  • awk '{print $NF}':输出最新修改的文件名。
总结

本文介绍了在Linux系统下使用Shell/Bash查找最新修改的文件的两种方法:使用find命令和使用ls命令。其中,find命令可以在整个文件系统中查找最新修改的文件,而ls命令只能在指定目录下查找。根据具体的需求,选择合适的方法来查找最新修改的文件。