web-dev-qa-db-ja.com

ファイルを除外しないmksquashfs

Squashfsから特定のファイルを除外する際に問題が発生しています。 * .dbで終わるすべてのファイルタイプを除外できるようにしたいのですが、うまくいきませんでした。

ファイルを除外する引数を指定してmksquashfsコマンドを実行すると、常にファイルが含まれます。コマンドのさまざまなバリエーションを試しました。私のテストスクリプトは以下のとおりです。

#!/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

テストディレクトリのツリーは以下のとおりです。 test.dbの両方のインスタンスを除外する必要がありますが、機能していないようです。

test
├── test
│   └── test.db
├── test.ab
├── test.cd
├── test.db
├── test.ef
├── test.gh
└── test.sh
1
tardis89

私の質問は https://stackoverflow.com/questions/45555796/mksquashfs-not- exclude-file で回答されました

以下に示すように、除外の前に...を追加して、代わりにワイルドカードを使用する必要がありました。 ...*.dbの間にスペースを含めることは非常に重要です。そうしないと機能しません。私は以前にこの方法を試したことがあると思いますが、試してみたところ、2つの方法の間にスペースがあることに気づきませんでした。

mksquashfs test test.package -wildcards -e '... *.db'
0
tardis89

したがって、問題の(ラップされていない)コマンドラインは次のようになります。

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

問題は、正規表現を使用しておらず、シェルのワイルドカードを使用していることです。 mksquashfsのマンページに従って、-regexオプションは、POSIX正規表現の使用を許可し、-wildcardsは、「拡張シェルワイルドカード(グロビング)をexclude dirs/filesで使用する」ことを許可します。したがって、-regex-wildcardsそのコマンドラインで、それは動作するはずです。

0
TiGR