返回

如何在 Bash/Debian 中获取文件创建日期/时间?

Linux

Bash/Debian 中获取文件创建日期/时间的终极指南

摘要

获取文件创建日期/时间在 Bash/Debian 环境中是一个常见的任务,但与获取修改日期/时间不同,它需要一些额外的技巧。本文将深入探讨获取创建日期/时间的多种方法,并提供实用示例、脚本和提示,帮助你解决这个问题。

获取文件创建日期/时间

方法 1:使用 stat 命令

stat 命令是一个强大的工具,可以提供有关文件的各种信息,包括其创建日期/时间。执行以下命令:

stat -c %z <filename>

其中 <filename> 是目标文件的名称。输出将显示文件创建日期/时间,格式为 epoch 时间戳。

方法 2:使用 find 命令

find 命令允许你查找文件并显示其元数据,包括创建日期/时间。运行以下命令:

find <directory> -printf '%T@ %p\n'

其中 <directory> 是要搜索的目录。输出将列出每个文件的创建日期/时间和路径。

方法 3:使用脚本

下面的脚本将获取当前目录中所有文件的创建日期/时间并将其存储在文件中:

#!/bin/bash

cwd=$(pwd)
touch file_creation_times.txt

for file in "$cwd"/*; do
  stat -c '%y %n' "$file" >> file_creation_times.txt
done

运行此脚本将生成一个名为 "file_creation_times.txt" 的文件,其中包含创建日期/时间的列表。

额外提示

  • 将 epoch 时间戳转换为可读日期/时间:
date -d @<epoch_timestamp>
  • 使用 xargsfind 输出传递给 date 命令,批量转换时间戳:
find <directory> -printf '%T@ %p\n' | xargs -I {} date -d @{}

结论

掌握获取文件创建日期/时间的方法对于管理文件和跟踪其起源至关重要。本文提供了详细的指导和实际示例,让你轻松解决此任务。

常见问题解答

  1. 如何将创建日期/时间从 epoch 时间戳转换为可读格式?

    • 使用 date -d @<epoch_timestamp> 命令。
  2. 如何批量获取多个文件的创建日期/时间?

    • 使用 find 命令结合 xargs 传递输出给 date 命令。
  3. 脚本会覆盖现有的 "file_creation_times.txt" 文件吗?

    • 不会,脚本会创建该文件,如果它不存在的话。
  4. 我可以获取比 epoch 时间戳更详细的创建日期/时间信息吗?

    • 使用 stat -c %Y-%m-%d %H:%M:%S %z 命令。
  5. 还有什么其他获取文件创建日期/时间的方法?

    • 使用 touch -t 命令修改时间戳,然后使用 stat 命令获取创建日期/时间。