我将通过createrepo创建自己的内部存储库服务,并希望提供自己的存储库。
自动下载JRE和JDK包,就像描述在堆栈溢出处留给我的文件一样,这些文件从下载时起就有时间戳。文件的创建时间设置为下载脚本的运行时。
为了进一步处理,我希望将时间戳设置为RPM包的构建时间(.以便我可以通过ls -al、ll、--full-time等查询它们)。
如何将文件的创建时间(RPM)从下载时间更改为自动生成时间?
发布于 2018-07-30 07:29:15
经过一些研究,我发现我可以通过rpm -qip查询RPM的构建时间。
BUILDTIME=$(rpm -qip --nosignature ${FILENAME} | grep -i "Build Date : " | sed -e 's/Build Date : //g')
echo ${BUILDTIME}date命令可以重新格式化给定的日期和时间字符串。
TIMESTAMP=$(date --date="${BUILDTIME}" "+%Y%m%d%H%M")
echo ${TIMESTAMP}以便以后可以与touch命令一起使用。
touch -m -a -t ${TIMESTAMP} ${FILENAME}通过迭代特定目录中的所有文件,可以列出包含的所有包的所有创建时间,并自动修改它。
#!/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}
donehttps://unix.stackexchange.com/questions/459265
复制相似问题