現在のディレクトリの内容からすべての隠しファイルを引いた内容を圧縮する方法は?

現在のディレクトリの内容からすべての隠しファイルを引いた内容を圧縮する方法は?

現在のフォルダの内容(隠しファイルとフォルダを除く)を圧縮するには?

zip -r extension.xpi . -x "*/.*"

これがこれまで持っているものですが、まだ隠されたファイルを得ています。

答え1

*/.*サブディレクトリには隠しファイルのみが含まれます。ただし、現在のディレクトリやサブディレクトリのサブディレクトリにはありません。これzip -r extension.xpi . -x ".*"それ試してみてくださいzip -r extension.xpi . -x .\*

バックスラッシュが鍵となるべきだと思います。マンページの引用は次のとおりです。

次のように指定されたファイルを明示的に除外します。

zip -r foo foo -x \*.o

これには、foo.zipのfooの内容が含まれ、.oで終わるすべてのファイルは除外されます。バックスラッシュはシェルファイル名の置き換えを防止するので、zipはすべてのディレクトリレベルで名前の一致を実行します。

答え2

許可された回答は、次のテストディレクトリ構造では機能しません。

$ tree .
.
├── adir1
│   ├── afile1
│   ├── afile2
│   ├── afile3
│   └── afile4.txt
├── adir2
│   ├── afile1
│   ├── afile2
│   ├── afile3
│   └── afile4.txt
├── adir3
│   ├── afile1
│   ├── afile2
│   ├── afile3
│   └── afile4.txt
├── afile1
├── afile2
├── afile3
├── foo.test

この場合の適切な解決策は次のとおりです(より一般的なケースだと思います)。

 $ find . -type f -not -path '*/\.*' -exec zip -r test.zip {} +

はい

$ find . -type f -not -path '*/\.*' -exec zip -r test.zip {} +
updating: adir1/afile1 (stored 0%)
updating: adir1/afile1.zip (stored 0%)
updating: adir1/afile2 (stored 0%)
updating: adir1/afile3 (stored 0%)
updating: adir1/afile4.txt (stored 0%)
updating: adir2/afile1 (stored 0%)
updating: adir2/afile2 (stored 0%)
updating: adir2/afile3 (stored 0%)
updating: adir2/afile4.txt (stored 0%)
updating: adir3/afile1 (stored 0%)
updating: adir3/afile2 (stored 0%)
updating: adir3/afile3 (stored 0%)
updating: adir3/afile4.txt (stored 0%)
updating: afile1 (stored 0%)
updating: afile2 (stored 0%)
updating: afile3 (stored 0%)
updating: foo.test (deflated 87%)

関連情報