Come cancelleresti una cartella chiamata * in / da bash?


8

Diciamo che avevo una cartella chiamata *sotto /. So che comandi comuni come rm -rf * non funzioneranno. Qualsiasi aiuto?


2
Tecnicamente, rm *funzionerebbe per eliminare quella cartella.
Colonnello Panic,

Risposte:


7

usa questo breve comando:

rm /\*

1
Non funzionerà: è una directory.
naught101

1
Quindi usa 'rmdir / \ *' invece. L'altra opzione è usare 'rm -rf / \ *'. Ma fare quest'ultimo è pericoloso se si commette un errore.
Serge,

14

È possibile virgolette singole per impedire l'elaborazione da parte della shell.

rm -r '/*'

Provalo in sicurezza usando ls(in cartelle contenenti file):

$ ls '*'
ls: *: No such file or directory

In questo caso, anche le virgolette doppie funzionerebbero, ma se ci fosse un $coinvolgimento, non funzionerebbero, poiché la shell presumerebbe che sia una variabile:

$ ls "foo$bar"
ls: foo: No such file or directory
$ ls 'foo$bar'
ls: foo$bar: No such file or directory

Per GNU rm, puoi anche aggiungere --prima degli argomenti del nome file per impedire che vengano analizzati come argomenti. Ciò ti consentirà di eliminare i file denominati -rfsenza problemi.


Non richiesto. Puoi semplicemente sfuggire al '*' in modo che non sia espanso dalla shell mentre Serge ha risposto.
darnir,

5
@darnir Non è necessario utilizzarlo se non ti piace. Ma devi sapere quali personaggi scappare quando usi l'approccio di Serge (considera &) e sfuggirli individualmente, il che può facilmente diventare più sforzo che citare una volta. Considero quindi la fuga individuale inferiore e pubblicato questa alternativa.
Daniel Beck

3
@Serge Non sto dicendo che la tua risposta sia negativa. Fa il lavoro ed è stato accettato . Tuttavia, se ci sono diversi modi (ragionevolmente diversi) per ottenere qualcosa con pro e contro diversi, sentiti libero di elencarli tutti. Potrebbero non funzionare in tutte le situazioni, quindi è bene avere alternative tra cui scegliere. Tieni inoltre presente che gli utenti con problemi simili (non identici) potrebbero arrivare a una domanda di Google. È anche una buona idea ampliare l'ambito se porta a domande che possono aiutare più persone. Scrivere risposte più ampie ha un inizio qui.
Daniel Beck

1
Non avevo l'obiettivo di ottenere tutte le mie risposte accettate e con la più alta piaga. Trascorro un paio di giorni (questo fine settimana) con alcuni di questi siti. La prima impressione è stata che posso condividere con le persone le mie conoscenze, ecco perché ho iniziato a fornire risposte. Su SO ho ottenuto 760 punti in questi tre giorni. Sì, alcune delle mie risposte non erano di alta qualità da diversi punti. Ma tutti erano corretti. Ma ora vedo che la maggior parte delle persone che pongono domande qui - sono studenti che non vogliono spendere un secondo per trovare una soluzione. Per cosa passerò il mio tempo?
Serge,

1
@Serge Non sono sicuro di cosa trattino i tuoi commenti. Da quello che ho visto dopo averlo menzionato, hai avuto un inizio impressionante nel contribuire ai siti. Se c'è qualcosa con cui posso aiutarti nell'utilizzo dei siti o qualcos'altro di cui vuoi discutere, sentiti libero di chiamarmi in chat. Sono in UTC + 2, quindi potresti non ricevere una risposta molto presto. Per quanto riguarda le domande "principianti": tieni presente che alcune informazioni non sono facilmente individuabili. La lettura della bashpagina man completa richiede un po 'di tempo se non sai cosa cercare.
Daniel Beck
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.