GNU/Linux >> Znalost Linux >  >> Linux

Proč je znak divoké karty * tak odlišný mezi příkazy Zip a Rm?

Dal jsem dohromady skript, který za mě provedl nějaké operace se soubory. Používám zástupný operátor * použít funkce na všechny soubory určitého typu, ale jednu věc nechápu. Mohu unzip všechny soubory ve složce, jako je tato

unzip "*".zip

Chcete-li však později odstranit všechny soubory zip, musím to udělat

rm *.zip

To znamená, že nechce uvozovky. Na druhou stranu rozbalení nefunguje, pokud mu dám pouze * (upozorňuje mě, že „soubory nebyly shodovány“).

proč je to jiné? Mně to připadá jako úplně stejná operace. Nebo používám zástupný znak nesprávně?

Úvody do divokých karet v Unixu do toho ve skutečnosti nezapadají a v rm jsem nemohl nic najít nebo zip docs.

Používám terminál na Macu (Yosemite).

Přijatá odpověď:

Velmi dobře jste popsal situaci. Posledním kouskem skládačky je unzip dokáže sám zpracovat zástupné znaky:

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

ARGUMENTY

soubor[.zip]

Výrazy se zástupnými znaky jsou podobné těm, které jsou podporovány v běžně používaných unixových shellech (sh, ksh, csh) a mohou obsahovat:

* odpovídá sekvenci 0 nebo více znaků

Uvedením zástupného znaku * jste zabránili svému shellu v jeho rozbalení, takže unzip vidí zástupný znak a zabývá se jeho rozšířením podle své vlastní logiky.

rm , naproti tomu samotné zástupné znaky nepodporuje , takže pokus o citaci zástupného znaku bude instruovat rm místo toho hledat doslovnou hvězdičku v názvu souboru.

Důvod, proč unzip *.zip nefunguje, je to unzip Syntaxe jednoduše neumožňuje více souborů zip; pokud existuje více parametrů, očekává, že druhý a následující budou soubory v archivu:

rozbalte [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] soubor[.zip] [soubor(y) …] [-x xsoubor(y) …] [-d exdir]


Linux
  1. Jaký je rozdíl mezi Sudo Su – a Sudo Su –?

  2. Rozdíl mezi Getty a Agetty?

  3. Rozdíl mezi .exrc a .vimrc?

  1. Rozdíl mezi Nss a Pam?

  2. Unzip si myslí, že soubor zip je zipová bomba?

  3. Rozdíl mezi ${} a $() v Bash

  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Rozdíl mezi příkazy zastavení a vypnutí?

  3. Rozdíl mezi příkazy 'ifconfig' a ​​'ip'