zip
ディレクトリの内容(隠しファイルとディレクトリを含む)を繰り返し圧縮するためにフラグを付けてコマンドを使用する場合、-r
次の違いは何ですか?
zip ../foo.zip -r .
そして:
zip ../foo.zip -r * .[^.]*
それともまったく同じですか?
最初のコマンドは.
現在のディレクトリ()をターゲットにし、引数には-r
すべての隠しファイルとディレクトリを含める必要があります。
2番目のコマンドは、私が正しく覚えている場合は、現在のディレクトリ(最初のディレクトリ)からドット以外の*
すべてのファイルと一致し、次に.
charで始まり、その後にドット[^.]
()を除くすべての文字が来るすべてのファイルと一致するため、..
親ディレクトリは除外されます。
オンラインの例で2番目のコマンドを見つけましたが、まったく同じことをした場合は、より簡単な最初のコマンドの代わりにこのコマンドを使用する意味はありません。
また、POSIXシェルスクリプトでは、ShellCheckは置き換える必要があるシンボルについて文句を言います。これは* .[^.]*
、単純な関数が同じことを行うことができる場合、それを使用しないもう一つの良い理由です。./* .[!.]*
.
zip ../foo.zip * .[^.]*
私の考えでは、(フラグなしで)見つかった例では、コマンドが-r
実行され、-r
フラグは-r
現在のパス(.
)が代わりにターゲットになったとは思わずに追加されました* .[^.]*
。
だから私の質問は:このフラグを使用するとき、これらの2つのコマンドは同じですか-r
?私の推測は正しいですか?