J'ai des problèmes pour exclure un fichier spécifique d'un squashfs. Je veux pouvoir exclure tous les types de fichiers se terminant par * .db mais je n'ai pas eu de chance.
Chaque fois que j'exécute la commande mksquashfs avec les arguments pour exclure le fichier, il inclut toujours le fichier. J'ai essayé de nombreuses variantes de la commande. Mon script de test est ci-dessous:
#!/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
L'arborescence du répertoire de test est ci-dessous. Les deux instances de test.db doivent être exclues mais cela ne semble pas fonctionner.
test
├── test
│ └── test.db
├── test.ab
├── test.cd
├── test.db
├── test.ef
├── test.gh
└── test.sh
On a répondu à ma question à https://stackoverflow.com/questions/45555796/mksquashfs-not-excluding-file
J'ai dû utiliser des caractères génériques à la place avec le ...
ajouté devant mon exclusion comme indiqué ci-dessous. Il est très important d'inclure un espace entre les ...
et le *.db
, sinon cela ne fonctionnera pas. Je crois que j'avais déjà essayé cette méthode sur recommandation, mais je ne savais pas quand je l'ai essayée qu'il y avait un espace entre ces deux.
mksquashfs test test.package -wildcards -e '... *.db'
Ainsi, la ligne de commande (non enveloppée) en question se lit comme suit:
mksquashfs test test.package -regex -e '*.db'
Le problème est que vous n'utilisez pas l'expression régulière, vous utilisez un caractère générique Shell. Conformément à la page de manuel de mksquashfs
, l'option -regex
Permet l'utilisation d'expressions régulières POSIX et -wildcards
Permet d'utiliser des caractères génériques Shell étendus (globbing) pour exclure les répertoires/fichiers ". Donc, remplacez simplement -regex
Par -wildcards
Dans cette ligne de commande et cela devrait fonctionner.