Linux中有什么方法可以检查目录树是否已更改?

问题描述

我正在创建一个QEMU启动脚本,每次启动环境时,我都会在该脚本中将rootfs编译为cpio.gz。目前,这很好,但是当rootfs变得更大时,这将是一个问题。有什么方法可以检查给定的目录结构和编译的xxx.cpio.gz是否不同?我的意思是,如果将文件添加到基本rootfs目录结构中,则必须创建一个新的cpio.gz,但如果不是这样,则在先前启动中编译的文件就可以了。

谢谢。

解决方法

您可以在rootfs目录和cpio.gz之间使用a来查找仅存在于rootfs目录中的文件。

例如,给定以下目录ba: total 16 drwxr-xr-x 2 spiderpig spiderpig 4096 Oct 2 14:43 . drwxr-xr-x 24 spiderpig spiderpig 12288 Oct 2 14:43 .. -rw-r--r-- 1 spiderpig spiderpig 0 Oct 2 14:43 in_both_dirs -rw-r--r-- 1 spiderpig spiderpig 0 Oct 2 14:43 only_in_a b: total 16 drwxr-xr-x 2 spiderpig spiderpig 4096 Oct 2 14:43 . drwxr-xr-x 24 spiderpig spiderpig 12288 Oct 2 14:43 .. -rw-r--r-- 1 spiderpig spiderpig 0 Oct 2 14:43 in_both_dirs -rw-r--r-- 1 spiderpig spiderpig 0 Oct 2 14:43 only_in_b

spiderpig@linux-dev ~ $ diff --brief a b
Only in a: only_in_a
Only in b: only_in_b

输出将是:

diff

然后,您可以知道要复制哪些文件,而不是复制整个目录。请注意,diff --help有很多选项,因此请确保在运行{{1}}之前使用它。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...