スクリプトを作成して、いくつかのファイル操作を実行しました。*
タイプのすべてのファイルに関数を適用するためにワイルドカード演算子を使用していますが、取得できないことが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。