GNU/Linux >> Linux の 問題 >  >> Linux

ワイルドカード文字*がZipコマンドとRmコマンドで大きく異なるのはなぜですか?

いくつかのファイル操作を行うためのスクリプトをまとめました。ワイルドカード演算子*を使用しています あるタイプのすべてのファイルに関数を適用しますが、私が得られないことが1つあります。 unzipできます このようなフォルダ内のすべてのファイル

unzip "*".zip

ただし、後ですべてのzipファイルを削除するには、実行する必要があります

rm *.zip

つまり、引用符は必要ありません。一方、解凍は、*を指定しただけでは機能しません(「ファイルが一致しませんでした」という警告が表示されます)。

なぜこれが違うのですか?私には、これはまったく同じ操作のように思えます。または、ワイルドカードを誤って使用していますか?

Unixでのワイルドカードの紹介は実際にはこれには触れておらず、rmには何も見つかりませんでした またはzip ドキュメント。

Mac(Yosemite)で端末を使用しています。

承認された回答:

あなたは状況を非常によく説明しました。パズルの最後のピースは、unzipです。 ワイルドカード自体を処理できます:

http://www.info-zip.org/mans/unzip.html

引数

file [.zip]

ワイルドカード式は、一般的に使用されるUnixシェル(sh、ksh、csh)でサポートされているものと類似しており、次のものが含まれる場合があります。

*0文字以上のシーケンスに一致します

*ワイルドカードを引用することで、シェルがそれを展開できないようにし、unzip ワイルドカードを確認し、独自のロジックに従ってワイルドカードを拡張します。

rm 対照的に、ワイルドカードはそれ自体ではサポートされません。 、したがって、ワイルドカードを引用しようとすると、rmに指示されます 代わりに、ファイル名で文字通りのアスタリスクを探します。

unzip *.zipの理由 動作しないのはunzip の構文では、複数のzipファイルを使用できません。複数のパラメータがある場合、2番目以降のパラメータはアーカイブ内のファイルであると想定されます:

unzip [-Z] [-cflptTuvz [abjnoqsCDKLMUVWX $ /:^]] file [.zip] [file(s)…] [-x xfile(s)…] [-d exdir]


Linux
  1. Sudo Su –とSudo Su —の違いは何ですか?

  2. GettyとAgettyの違いは?

  3. .exrcと.vimrcの違いは?

  1. Linuxでの「su」コマンドと「su-」コマンドの違いを学ぶ

  2. NssとPamの違いは?

  3. Unzipは、ZipファイルがZip爆弾であると考えていますか?

  1. InnoDBとMyISAMの違いは何ですか?

  2. 停止コマンドとシャットダウンコマンドの違いは?

  3. ls と l はどう違いますか?