ある場所から別の場所に複数のzipファイルをコピーするには、次の手順を実行します。
$ cp *.zip destination/
複数のzipファイルをディレクトリに解凍するには:
$ unzip \*.zip -d destination/
man unzip
説明する:
アスタリスクの前のバックスラッシュは、Unixのようにシェルがワイルドカードを拡張する場合にのみ必要です。
私を混乱させることは、2つのコマンドが同じように動作しないようです。なぜそうではないのですか?毎回マニュアルページを覚えたり読んだりすることなく、各コマンドがどのように機能するかを知ったり推測したりする方法はありますか?
cp
代わりに、複数のソースパラメータを取得するように実装されているため、違いますかunzip
?unzip
ワイルドカードを含む文字列を使用できます。複数のソースファイルが利用できないのはなぜですか?
ソースパラメータを取得する標準的な方法は何ですか?cp
本当にあまりにも何か?
ベストアンサー1
2つのzipファイルがあり、そのファイルが現在のディレクトリにあるa.zip
場合b.zip
$ cp *.zip destination/
次に展開
$ cp a.zip b.zip destination/
の意味はコピーしてターゲットに移動するcp
ことです。a.zip
b.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つのコマンドが引数を異なる方法で解釈することです。