Ogni volta che ho rm
più oggetti contemporaneamente con il gorgogliamento della conchiglia e c'è anche la minima possibilità che il modello si espanda a più di quanto mi aspetto, provo sempre a ricordare di aggiungere -i
, ma (ovviamente) potrei dimenticare e spazzare via accidentalmente qualcosa di utile. Alcune persone cercano di risolvere questo problema con un alias, come alias rm='rm -i'
ma odio l'idea di rendere rm sempre interattivo, perché poi avrò l'abitudine di utilizzare -f
tutto il tempo, il che ovviamente vanificherà l'intero scopo.
Quello che mi piacerebbe fare è rm
usare solo -i
quando uso il globbing e, -f
ovviamente, per scavalcare -i
, così posso ancora spazzare via intere directory con il solito rm -rf junk
.
Pertanto rm *blah*
sarebbe davvero, rm -i *blah*
ma rm blah
funzionerebbe esattamente come digitato.
Nel caso in cui ci sia una differenza nel modo in cui ciò potrebbe essere realizzato in diverse shell, sceglierò una risposta che fornisce metodi sia per bash che per zsh rispetto a risposte che coprono solo l'una o l'altra.
Nota : in realtà non sono convinto che questa sia necessariamente una buona idea; Sto solo chiedendo se è possibile. Se pensi che questa sia un'idea stupida, sarei molto felice di sentire il ragionamento dietro la tua opinione, ma per favore non pubblicare tali commenti nel campo della risposta . Le risposte reali mi dicono come fare o spiegano questo / perché non è possibile (o eventualmente offrono un metodo alternativo per ottenere un risultato simile). Ma se vuoi dirmi perché è stupido, per favore pubblica come commento. Valuterò i commenti ben motivati anche se non sono d'accordo con la conclusione.
noglob
, ad esempio, da aliasing rm a noglob my-rm
, e quindi avere my-rm come uno script che controlla un glob, lo espande e passa -i o no. Non sono sicuro, non so zsh.
myrm
e lasciare che lo script faccia ciò che ti piace.
rm -I
è così-i
che si innesca solo quando-r
vengono passati più di tre file . Inbash
, utilizzare laCtrl-x *
scorciatoia da tastiera per espandere il glob e ispezionarlo da soli.