我将通过创建我自己的内部存储库服务,createrepo
并希望提供一个 Java 存储库。
自动下载 JRE 和 JDK 包描述于堆栈溢出给我留下的文件带有下载时的时间戳。文件的创建时间设置为下载脚本的运行时间。
为了进一步处理,我喜欢将时间戳设置为 RPM 包的构建时间(...以便我可以通过ls -al
、ll
、--full-time
等查询它们)。
如何自动将文件的创建时间(RPM)从下载时间更改为构建时间?
答案1
经过一些研究,我发现我可以通过 查询 RPM 构建时间rpm -qip
。
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}
done