スクリプトを作成して、いくつかのファイル操作を実行しました。*タイプのすべてのファイルに関数を適用するためにワイルドカード演算子を使用していますが、取得できないことが1つあります。unzipこのようなフォルダ内のすべてのファイルができます
unzip "*".zip
ただし、すべてのzipファイルを後で削除するには、する必要があります
rm *.zip
つまり、引用符は不要です。一方、unzipは、*を指定しただけでは機能しません(「ファイルが一致しませんでした」という警告が表示されます)。
なぜこれが違うのですか?私には、これはまったく同じ操作のように思えます。または、ワイルドカードを間違って使用していますか?
Unixでのワイルドカードの紹介は実際にはこれに該当せずrm、zipドキュメントやドキュメントには何も見つかりませんでした。
Mac(Yosemite)でターミナルを使用しています。
unzipグロブをアーカイブのコンテンツに適用します。ワイルドカードを使用してbashから取得することはできません。(あなたがFのために`` `必要があると思いますunzip -l archive.zip。やる... done`)
unzip単一のzipファイル内で一致するグロブを受け入れることを知っていました。しかし、これは異なります。unzip '*.zip'複数のzipファイルがあるディレクトリで実際に試したところ、すべてのzipからすべてのファイルが抽出されました。私が言ったように、非常に奇妙です。 tarそのような操作モードはありません。
unzip通常のfor f in *.zip;do...doneシェルループなしでこれを実行できるとは思いもしませんでした。このような奇妙な非UNIXライクなコマンドラインUI。