Estou usando mksquashfs
uma ferramenta para fazer backup da raiz do Ubuntu antes de reinstalar o sistema:
sudo mksquashfs / root.squashfs -ef "/home/admin/squashfs_root/exclude.txt"
Mas em nenhum lugar da documentação encontrei o formato do arquivo. Coloquei o seguinte conteúdo nele:
/proc
/sys
/dev
/tmp
/run
/mnt
/media
/swapfile
Funcionará como esperado, excluindo esses diretórios específicos e não os similares dentro de outros diretórios?
Ele está documentado no arquivo README ou USAGE, que geralmente é distribuído no pacote binário e que você também pode encontrar nas fontes do GitHub , por exemplo, usage 4.6 .
Existem dois tipos de sintaxe de exclusão: a básica legada que você está usando e uma estendida preferencial que precisa da opção
-wildcard
ou-regex
.A correspondência básica consiste em nomes de arquivos ou diretórios a serem excluídos. Cada um é classificado como absoluto ou relativo. Nomes absolutos começam com "/", "../" ou "./". Eles são convertidos usando
lstat(2)
em número de dispositivo e inode, então eles normalmente devem existir começando em/
ou..
ou no diretório atual conforme apropriado.Nomes relativos são adicionados ao final de cada nome de origem, e essa sequência é convertida de forma semelhante ao dispositivo e ao inode.
Por exemplo, para 2 fontes:
/tmp/a b
e excluir padrões:-e /foo /tmp/a/1 ../d 2 c/3
você excluirá os arquivos ou diretórios(onde
<cwd>
está o diretório atual) e tambémmas somente se esses arquivos ou diretórios existirem. Você deve receber um aviso para cada um que não existir. Então se você executar
mksquashfs
while no diretório atual/tmp/a/c
, então/tmp/a/c/../d
ie/tmp/a/d
seria excluído.A sintaxe preferida de exclusão estendida funciona com strings em vez de inodes, e por padrão os padrões são ancorados no início de cada fonte. Você precisa adicionar um prefixo
...
para corresponder a unnchored.