#linux #directory #rootfs #cpio
#linux #каталог #rootfs #cpio
Вопрос:
Я создаю сценарий запуска QEMU, в котором я компилирую rootfs для cpio.gz каждый раз, когда я запускаю env. На данный момент это нормально, но когда корневые файлы увеличатся в размерах, это станет проблемой. Есть ли какой-либо способ проверить, соответствует ли данная структура каталогов и скомпилированный xxx.cpio.gz отличаются ли они друг от друга? Я имею в виду, что если файл добавляется в базовую структуру каталогов rootfs, то новый cpio.gz должен быть создан, но если это не так, то подойдет тот, который был скомпилирован при предыдущем запуске.
Заранее спасибо.
Ответ №1:
Вы можете использовать diff
между каталогом rootfs и cpio.gz чтобы найти файлы, которые существуют только в каталоге rootfs.
Например, учитывая следующие каталоги a
и b
:
a:
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
его перед использованием.