📜  bash 获取早于 - Shell-Bash 的文件(1)

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

Bash 获取早于 Shell-Bash 的文件

如果您正在使用 Bash 4.0 或更早的版本,并且需要获取早于 Shell-Bash 的文件,则可以使用以下方法。

首先,我们需要使用 find 命令查找文件。以下是一个示例命令,它将在当前目录及其子目录中查找所有文件,并将它们按修改时间从早到晚排序:

find . -type f -printf '%T@\t%p\n' | sort -n | cut -f 2- | grep -v '/\.' 

解释一下上述命令中各个参数的含义:

  • find . :在当前目录及其子目录中查找文件。
  • -type f :只查找普通文件,不包括目录。
  • -printf '%T@\t%p\n' :按修改时间输出文件路径和时间戳,其中 %T@ 表示时间戳,\t 表示制表符,\n 表示换行符。
  • sort -n :按时间戳从小到大排序。
  • cut -f 2- :去掉第一个字段,即时间戳。
  • grep -v '/\.' :删除以点号开头的隐藏文件。

接下来,我们可以将上述命令包装成一个函数,并将其放入 ~/.bashrc 文件中,以便在每次打开终端时都能使用它。

get_early_files() {
    find . -type f -printf '%T@\t%p\n' | sort -n | cut -f 2- | grep -v '/\.' 
}

使用方法很简单,只需在终端中输入 get_early_files 命令即可打印出早于 Shell-Bash 的文件列表。

另外,如果您使用的是 Bash 4.3 或更高版本,则可以使用 -newermt 参数来查找指定时间之后被修改的文件,例如:

find . -type f -newermt '2000-01-01' -printf '%T@\t%p\n' | sort -n | cut -f 2- | grep -v '/\.' 

以上就是 Bash 获取早于 Shell-Bash 的文件的方法啦。