ソースパラメータの解凍

ソースパラメータの解凍

ある場所から別の場所に複数のzipファイルをコピーするには、次の手順を実行します。

$ cp *.zip destination/

複数のzipファイルをディレクトリに解凍するには:

$ unzip \*.zip -d destination/

man unzip説明する:

アスタリスクの前のバックスラッシュは、Unixのようにシェルがワイルドカードを拡張する場合にのみ必要です。

私を混乱させることは、2つのコマンドが同じように動作しないようです。なぜそうではないのですか?毎回マニュアルページを覚えたり読んだりすることなく、各コマンドがどのように機能するかを知ったり推測したりする方法はありますか?

cp代わりに、複数のソースパラメータを取得するように実装されているため、違いますかunzipunzipワイルドカードを含む文字列を使用できます。複数のソースファイルが利用できないのはなぜですか?

ソースパラメータを取得する標準的な方法は何ですか?cp本当にあまりにも何か?

ベストアンサー1

2つのzipファイルがあり、そのファイルが現在のディレクトリにあるa.zip場合b.zip

$ cp *.zip destination/

次に展開

$ cp a.zip b.zip destination/

の意味はコピーしてターゲットに移動するcpことです。a.zipb.zip

入力したら

$ cp \*.zip destination/

ただ次のように「拡張」されるだけです。

$ cp '*.zip' destination/

つまり、「*.zip」という単一のファイルをターゲットにコピーしようとしますが、これは望むものではありません。

一方、入力すると

$ unzip *.zip -d destination/

再び拡張される予定

$ unzip a.zip b.zip -d destination/

意味論は、unzip「a.zip」アーカイブで「b.zip」というファイルを見つけることです。

入力したら

$ unzip \*.zip -d destination/

このunzipコマンドは単にというファイルを解凍しようとするものではありませ*.zip.zip

違いは、2つのコマンドが引数を異なる方法で解釈することです。

おすすめ記事