mksquashfs não excluindo arquivo

1

Estou tendo problemas ao excluir um arquivo específico de um squashfs. Eu quero ser capaz de excluir todos os tipos de arquivo que terminam com * .db, mas não tiveram sorte.

Sempre que eu executo o comando mksquashfs com os argumentos para excluir o arquivo, ele sempre inclui o arquivo. Eu tentei muitas variantes diferentes do comando. Meu script de teste está abaixo:

#!/bin/bash

OPT="-regex -e '*.db' "

echo -e "Creating squashfs..."
mksquashfs test test.package ${OPT}
echo "Ran the following command: mksquashfs pf test.package ${OPT}"

echo -e "Uncompressing squashfs..."
mkdir pf_post
unsquashfs -f -d test_post/ test.package 

echo
read -p "press any key to continue..."

rm test.package
rm -r test_post

A árvore do diretório de teste está abaixo. Ambas as instâncias do test.db devem ser excluídas, mas parece que não funciona.

test
├── test
│   └── test.db
├── test.ab
├── test.cd
├── test.db
├── test.ef
├── test.gh
└── test.sh
    
por tardis89 26.05.2015 / 20:37

2 respostas

0

Minha pergunta foi respondida no link

Eu precisava usar curingas com o ... adicionado antes da exclusão, conforme mostrado abaixo. É muito importante incluir um espaço entre o ... e o *.db , caso contrário, não funcionará. Acredito que já tentei esse método antes de recomendá-lo, mas não percebi, quando tentei, que havia um espaço entre esses dois.

mksquashfs test test.package -wildcards -e '... *.db'
    
por tardis89 10.08.2017 / 21:27
0

Então, a linha de comando (sem invólucro) em questão diz:

mksquashfs test test.package -regex -e '*.db'

O problema é que você não está usando o regex, você está usando o caractere curinga do shell. Como% man_age mksquashfs , opção -regex permite o uso de expressões regulares POSIX, e -wildcards permite que "wildcards estendidos de shell (globbing) sejam usados em diretórios / arquivos de exclusão". Portanto, basta substituir -regex por -wildcards nessa linha de comando e isso deve funcionar.

    
por TiGR 05.08.2015 / 14:55