![如何列出用户在全新安装后创建的所有文件?](https://linux22.com/image/97921/%E5%A6%82%E4%BD%95%E5%88%97%E5%87%BA%E7%94%A8%E6%88%B7%E5%9C%A8%E5%85%A8%E6%96%B0%E5%AE%89%E8%A3%85%E5%90%8E%E5%88%9B%E5%BB%BA%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我有一台闲置的机器,我希望在该机器上全新安装 Linux。机器上可能有重要文件。
如何列出用户在全新安装后创建的所有文件?
我原本想简单地查找所有文件,/
然后使用 for 循环进行迭代,最后rpm -q --whatprovides
列出用户创建的所有文件(即未在任何 rpm 的清单中列出的文件)。我认为这可行……但速度可能非常慢,需要 8 个小时以上。我得试试。
我列出了 rpm,但我认为这也适用于任何 Linux 发行版...但短期内我首先需要一个 rpm 解决方案。
答案1
rpm -qla
将快速列出来自 rpm 的所有文件。您可以对两个列表进行排序并将它们与 进行比较comm
。但是,用户编辑过的 rpm 中的配置文件(例如/etc/exports
.您可以使用rpm -qVa
它来验证安装的文件是否已更改,但它会忽略注定要更改的文件,例如/etc/shadow
.通常最好保留一份完整的副本,/etc
以防万一。您仍然需要担心特定的软件包,例如 mysql 和文件/var
......
答案2
两种方式,看你的需要:
你可以使用时间(change-time) 文件,使用该
find
命令查找最近更改的文件,并从中查找相应的包。这可以找到不属于包的文件,例如,如果您在/var
.您可以使用
rpm -qai
来获取所有软件包的安装日期,并获取最近安装的软件包的报告,并从该列表中使用rpm -ql
列出已安装的每个软件包的文件。例如,CentOS:按安装/更新日期列出已安装的 RPM?指出该
--last
选项按日期对列表进行排序rpm -qa
,您只需根据初始安装的时间过滤列表即可限制软件包。