首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文件的创建时间(RPM)从下载时间更改为构建时间

将文件的创建时间(RPM)从下载时间更改为构建时间
EN

Unix & Linux用户
提问于 2018-07-30 07:22:55
回答 1查看 1.4K关注 0票数 0

我将通过createrepo创建自己的内部存储库服务,并希望提供自己的存储库。

自动下载JRE和JDK包,就像描述在堆栈溢出处留给我的文件一样,这些文件从下载时起就有时间戳。文件的创建时间设置为下载脚本的运行时。

为了进一步处理,我希望将时间戳设置为RPM包的构建时间(.以便我可以通过ls -alll--full-time等查询它们)。

如何将文件的创建时间(RPM)从下载时间更改为自动生成时间?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-07-30 07:29:15

经过一些研究,我发现我可以通过rpm -qip查询RPM的构建时间。

代码语言:javascript
复制
BUILDTIME=$(rpm -qip --nosignature ${FILENAME} | grep -i "Build Date  : " | sed -e 's/Build Date  : //g')
echo ${BUILDTIME}

date命令可以重新格式化给定的日期和时间字符串。

代码语言:javascript
复制
TIMESTAMP=$(date --date="${BUILDTIME}" "+%Y%m%d%H%M")
echo ${TIMESTAMP}

以便以后可以与touch命令一起使用。

代码语言:javascript
复制
touch -m -a -t ${TIMESTAMP} ${FILENAME}

通过迭代特定目录中的所有文件,可以列出包含的所有包的所有创建时间,并自动修改它。

代码语言:javascript
复制
#!/bin/bash

for FILENAME in *.rpm; do

    echo ${FILENAME}

    BUILDTIME=$(rpm -qip --nosignature ${FILENAME} | grep -i "Build Date  : " | sed -e 's/Build Date  : //g')
    echo ${BUILDTIME}

    TIMESTAMP=$(date --date="${BUILDTIME}" "+%Y%m%d%H%M")
    echo ${TIMESTAMP}

    touch -m -a -t ${TIMESTAMP} ${FILENAME}

done
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/459265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档