在 unix 中使用 shell 命令之前,如何将文件的访问时间戳修改为秒数?

How can I modify the access timestamp of a file to seconds before using a shell command in unix?

我尝试将一个文件的访问时间改为秒前,例如设置“1437082451” (07/16/2015 @ 9:34:11pm (UTC)) 到“1437082450” (07/16/2015 @ 9:34:10pm (UTC)) 所以我只是将当前访问时间减去一秒。 我必须只使用 shell 命令,我搜索了一段时间但什么也找不到。

touch -at $(date -d @$(( $(stat -c '%X' "$filename") - 1)) '+%Y%m%d%H%M.%S') "$filename"

使用stat检索文件的当前访问时间,bash算法减去一秒,date格式化新时间为touch命令。