Ho messo insieme uno script per eseguire alcune operazioni sui file per me. Sto usando l'operatore jolly *
per applicare le funzioni a tutti i file di un tipo, ma c'è una cosa che non capisco. Posso unzip
tutti i file in una cartella come questa
unzip "*".zip
Tuttavia, per rimuovere tutti i file zip in seguito, devo farlo
rm *.zip
Cioè, non vuole le virgolette. La decompressione, d'altra parte, non funziona se gli do solo il * (mi avvisa che "i file non sono stati abbinati").
Perché è diverso? A me sembra esattamente la stessa operazione. O sto usando il jolly in modo errato?
Le introduzioni al jolly in Unix non vanno proprio in questo, e non sono riuscito a trovare nulla nei documenti rm
o zip
.
Sto usando il terminale su un Mac (Yosemite).
unzip
applica il glob al contenuto di un archivio; non puoi ottenerli da bash con un carattere jolly. (Avresti bisogno di `` for f in unzip -l archive.zip
; do ... done`)
unzip
accettare globs da abbinare all'interno di un singolo file zip. Ma questo è diverso; In realtà ho provato unzip '*.zip'
in una directory con più file zip ed estrae tutti i file da tutte le zip. Come ho detto, super-strano. tar
non ha alcuna modalità di funzionamento del genere.
unzip
poterlo fare senza il normalefor f in *.zip;do...done
loop shell. Un'interfaccia utente della riga di comando così bizzarra, non unix-like.