Doppia verifica rm in zsh


15

Quando faccio un rm * in zsh, ottengo qualcosa del genere:

2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y

Innanzitutto zsh mi chiede se sono sicuro di voler eliminare tutto, quindi rm chiede ogni file specifico.

Come posso avere solo la verifica zsh?


3
Usa rm -f ./*. Per impostazione predefinita, rmnon chiede nulla a meno che non si disponga dell'autorizzazione di scrittura per il file. Forse hai unalias rm='rm -i'
Stéphane Chazelas l'

Oh, deve essere così - sto eseguendo le eliminazioni da una shell Vagrant e i file sono ospitati sul file system del laptop. Grazie
ardochhigh,

2
Solo una nota, zsh richiede ancora "rm -rf *", questo può essere disabilitato consetopt rmstarsilent
Matt

Risposte:


29

Il messaggio "zsh: sicuro di voler eliminare tutti i file" è una funzione zsh, attivata in modo specifico invocando un comando chiamato rmcon un argomento che è *o something/*prima dell'espansione glob. Puoi disattivarlo con setopt rm_star_silent.

Il messaggio "rm: rimuovi file normale" proviene dal rmcomando stesso. Non verrà visualizzato per impostazione predefinita, appare solo quando rmviene invocato con l'opzione -i. Se non vuoi questo messaggio, non passare questa opzione. Anche senza -i, rmrichiede la conferma (con un messaggio diverso) se si tenta di eliminare un file di sola lettura; puoi rimuovere questa conferma passando l'opzione -f.

Dato che non hai passato -ila riga di comando, rmè presumibilmente un alias per rm -i(potrebbe anche essere una funzione, un comando wrapper non standard o un alias diverso, ma l'alias rm -iè di gran lunga il più plausibile). Alcune configurazioni predefinite includono alias rm='rm -i'nei file di inizializzazione della shell; questo potrebbe essere qualcosa che la tua distribuzione o l'amministratore di sistema ha impostato, o qualcosa che hai raccolto da qualche parte e aggiunto al tuo file di configurazione e poi dimenticato. Controlla la tua ~/.zshrcper una definizione alias per rm. Se ne trovi uno, rimuovilo. Se non lo trovi, aggiungi un comando per rimuovere l'alias:

unalias rm

6

Il comando corretto per disabilitare la doppia verifica sembra essere setopt rm_star_silent. Per abilitare la doppia verifica, fare setopt no_rm_star_silent.

Per informazioni più dettagliate, consultare la pagina man di zshoptions man zshoptionso http://linux.die.net/man/1/zshoptions


oppureunsetopt rm_star_silent
evandrix, il

1

Se stai usando oh-my-zsh, il plugin common-aliases include l'alias rm -i.

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh


1
Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - Dalla recensione
jayhendren,

@jayhendren - non è un collegamento alla documentazione, è un collegamento a qualcosa da installare per risolvere il problema ...
Wouter Verhelst
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.