在bash命令中,符号@代表什么意思?例如:date --date @...

16

如果问题缺少链接后面的内容,那么必须从该链接中引用足够的内容,以便即使该链接的内容发生更改或失效,也能理解并回答该问题。这与我们不接受依赖链接的答案的方式相同,除非它们直接引用足够有用且易于理解的内容,即使链接失效也是如此。 - Charles Duffy
谢谢您的补充,但我对主题的更改并不满意,因为它不再反映我的误解,即@符号是bash元素。这个问题与此主题没有太大关系了。 - user1785730
这样会更好吗?我试图准确地描述实际问题,以便有相同问题的人可以找到它,但不会暗示那些只看标题的人不存在的行为/语义,并且不会吸引那些对晦涩的 shell 语法和特性感到好奇的人,最终却失望了。 - Charles Duffy
顺便提一下,实际上还有其他使用@符号的bash语法,比如扩展模式;只看到原标题的人可能会认为问题是关于它们的。 - Charles Duffy
谢谢,我对此没问题。 - user1785730
2个回答

11
在您展示的上下文中,@ 出现在 date 命令的 --date 参数的开头:
date -u --date @$((`date +%s` - $date1)) +%H:%M:%S

如果是这种情况,那么参数应被视为自纪元以来的秒数,例如请参阅man date中的示例:

将自纪元以来的秒数(1970-01-01 UTC)转换为日期

$ date --date='@2147483647'
或者:
$ date -u -d @0
Thu Jan  1 00:00:00 UTC 1970

@ 的这个意义仅由 date 实用程序定义,而不是由 bash 定义。


2

我来这里寻找与 OP 相同的东西。尚未找到答案,但以防其他人发现它有用,@ 符号也可以与 curl 一起使用,通过文件发送原始字节流:

curl http://my.domain.com --data-binary @file.dat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接