Linux date 命令的 9 个实用示例
需要获取与 Linux 上的日期和时间相关的详细信息?这些日期命令示例肯定会对您有所帮助。
了解 Linux 日期命令。不,它不能给你带来一个浪漫的夜晚。但它可以格式化您在终端中写的情书顶部的日期。足够接近?让我们开始吧。
当您在 Bash 中编写脚本时,您不可避免地需要打印日期或时间,并且该日期或时间通常需要采用特定格式才能满足其他功能的要求。这就是日期命令发挥作用的时候。
正如您将看到的,Linux 中的 date 命令既简单又通用,这意味着它将接受各种输入并生成多种格式的日期。它还具有用于各种与时间相关的计算任务的其他特殊功能。学习日期的选项和语法肯定会让你更熟练地编写脚本,也许更准时。
日期命令基本语法
日期命令的基本语法如下:
date [OPTION]... [+FORMAT]
这意味着输入日期后,您可以输入一个选项,例如-d或-s,来调用特定的函数,我们'下面会解释。
您还可以使用格式化字符串来跟进这些字符串,这些字符串始终以 + 字符开头。这些字符串采用特定的格式字符(也在下面列出)来定义输出。
Linux date命令实例
您可以通过多种方式使用 date 命令。让我们考虑一下最常见和最有用的用例。
1. 获取当前日期和时间
您可以通过单独传递 date 命令来获取默认格式的当前本地日期和时间。
$ date
Mon 19 Apr 2021 12:41:17 PM CDT
如您所见,日期以简单且可预测的格式为您提供相关的日期和时间信息。
2. 获取过去或未来的日期
假设在您的脚本中,您需要计算从现在开始一周后的时间和日期。 date 命令已经帮您解决了。发出此命令,利用 -d 选项获取与未来日期相关的详细信息:
$ date -d "next week"
Tue 27 Apr 2021 05:21:07 PM CDT
-d 选项(date 的缩写)是 date 命令真正发挥作用的地方。它将接受各种自定义日期字符串;它们可以是技术性的,例如 20200315、03/15/20,也可以是可读性的,例如 2020 年 3 月 15 日。但您也可以使用相对术语,例如明天、昨天、下周日等。尝试一下,看看日期如何解释不同的输入字符串。
3. 设置日期格式
您可能已经注意到在前两个示例中,日期默认为非常特定的时间格式。那么如果您需要不同的格式怎么办?
您可以像 printf 命令一样格式化输出。例如,您可以使用以下命令打印当前年份:
date +"Year: %Y"
+ 表示您需要格式化字符串,无论 引号 内出现什么内容,日期都将被处理并格式化为输出。
以下是您最有可能使用的格式字符的列表:
Formatting Character | Output |
---|---|
%H | Hour (00-24) |
%I | Hour (01-12) |
%M | Minute (00-59) |
%S | Second (00-60) |
%p | AM or PM |
%A | Weekday full name (e.g. Sunday) |
%a | Weekday abbreviated name (e.g. Sun) |
%w | Weekday number (0-6) |
%d | Day of the month (01-31) |
%j | Day of the year (001-366) |
%B | Month full name (e.g. January) |
%b | Month abbreviated name (e.g. Jan) |
%m | Month number (01-12) |
您可以使用终端中的 --help 选项获取格式化字符的完整列表。
date --help
4. 获取星期几
日期格式的一个非常常见和实际的用途是获取任何给定日期的星期几。例如,要检查 1995 年 11 月 4 日是星期几,请输入与此类似的命令:
$ date -d "1996-04-11" +"%A"
Friday
-d 选项表示您想要一个特定的日期,"1996-04-11" 字符串表示您想要的日期,+"%A " 格式表示您希望在输出中显示星期几。请记住,日期字符串可以采用多种格式,而不仅仅是此处指定的一种。
5. 获取协调世界时间
通过发出 -u 标志,您可以获得协调世界时 (UTC) 中的当前时间。
$ date -u
Wed 21 Apr 2021 12:46:59 PM UTC
6. 输出另一个时区的当地时间
如果您需要获取任何其他时区的日期,可以通过在 date 命令之前设置 TZ= 环境变量来实现。
例如,您可以使用以下命令查看山区标准时间 (MST) 中的当前日期和时间:
$ TZ=MST date
Tue 20 Apr 2021 03:45:29 PM MST
出于您的目的,只需将 MST 替换为您喜欢的时区的缩写即可。您还可以选择使用 UTC 表示法。例如,要获取相同的时区,请将 MST 替换为 UTC+7。
此外,您可以命名一个大陆和主要城市,以获取该特定城市的当地时间。例如:
$ TZ=America/Phoenix date
Tue 20 Apr 2021 03:45:29 PM MST
7. 获取文件的最后修改时间
例如,如果您要创建备份,您通常需要获取文件的最后修改日期。您可以通过传递 -r 选项并命名文件来完成此操作。
$ date -r /etc/shadow
Wed 14 Apr 2021 07:53:02 AM CDT
您也可以在 Linux 中使用 touch 命令更改文件的时间戳。
8. 输出并转换纪元时间
您可以使用以下命令计算自 Unix 纪元以来的秒数:
$ date +%s
1618955631
您还可以通过使用 -d 选项和 @ 字符反转该过程并将 Unix 时间转换为人类可读的格式。
$ date -d @1618955631
Tue 20 Apr 2021 04:53:51 PM CDT
如果您需要精确的秒数来确保其他设备保持同步,那么计算 Unix 时间非常有用。
9. 临时设置系统时间
您可以使用 date 命令从终端更改系统时钟,方法是传递 -s 参数,后跟您想要的时间。例如,您可以使用以下命令将系统时钟设置为未来的 24 小时:
date -s "tomorrow"
请注意,您需要 sudo 权限才能传递此命令。此外,更改可能不会持久(这意味着重新启动后您的时钟将返回到之前的时间),因为大多数发行版使用其他实用程序来管理系统时钟,这些实用程序将覆盖启动时的更改。
Linux date 命令解释
就像在生活中一样,你无法摆脱 Linux 中的时间。这就是为什么了解如何通过 date 命令格式化和使用它至关重要。在 Linux 文件管理中你肯定会遇到的一件事是文件附带的各种时间戳。