📅  最后修改于: 2023-12-03 15:29:35.785000             🧑  作者: Mango
如果您正在使用 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 的文件的方法啦。