Rimozione della cartella denominata ~


30

Questo è l'output di ls -l

ls -l
total 53484
drwxr-xr-x 3 root root     4096 2011-02-10 05:59 ~
-rw-r--r-- 1 root root 54313810 2011-02-13 05:09 jobs.jar
-rw-r--r-- 1 root root   384035 2011-02-15 05:33 jobsLog.out

Non posso farlo rm -rf ~ perché rimuoverà la mia directory home.

Cosa dovrei fare? Non è un problema per me, ma solo un dolore per gli occhi.


8
Eviterei di scrivere rm -rfsu qualcosa con un tale potenziale di fallimento se digiti male. Prendi in considerazione l'idea di inserire la tua ./~cartella e di rimuoverne il contenuto prima di spostarti in una directory ed eseguire rmdir ./~per rimuovere la ~ directory stessa.
Adamnfish,

Risposte:


58

rm -R ./~

Questo lo farà cercare ~nella cartella corrente.


wow, modo di guardare le cose direttamente! complimenti!
theTuxRacer,

2
Questa risposta è corretta, ma penso che la risposta di Oli sia migliore perché è più sicura. Se si digita leggermente questo comando, si eliminerà definitivamente il sistema.
HDave

44

Ho fatto errori stupidi con rmprima, quindi ecco alcuni suggerimenti che ho imparato nel corso degli anni per cercare di proteggere i dati dagli incidenti:

  1. Utilizzare una soluzione grafica come Nautilus. Eliminalo delicatamente nel cestino. Quindi, quando sai di non averlo spostato $HOMEnel cestino (tutto avrebbe iniziato a bloccarsi e apparire funky), svuota il cestino.

  2. Sposta invece di eliminare. Rinominare la directory con mv, ad esempio:

    mv ./\~ ./a-nice-sensible-directory-name

    Quindi cancellalo.

  3. In caso di dubbio, usa la -ibandiera quando hai a che fare con potenziali fubar. Ti chiederà ogni file rimosso e ti informerà molto rapidamente se sta per succedere qualcosa di brutto.

    oli@bert:~/Desktop$ rm -rfi ./del/
    rm: descend into directory `./del'? y
    rm: remove regular file `./del/output2.pdf'?
    

1
GUI, non è un terminale SSH: P Buona idea su mv. Penso che dovrei creare l'alias rm con a rm -i.
theTuxRacer,

7
Puoi imbatterti ssh://user@ip/folderin nautilus. Non funziona per tutto (ad esempio se hai bisogno di sudo), ma il gioco è fatto. Aliasing -iè un'arma a doppio taglio. È utile ma è anche estremamente irritante quando si eseguono molti file. Considera -Ianche. E guarda man rmper ulteriori suggerimenti.
Oli

+1 per l'idea di spostamento. Ora mi chiedo perché non ci sia un rimpiazzo di sostituzione rmche si sposta su (diciamo) ~ / .Trash.
ShreevatsaR,

19

Problema brillante :)

Puoi eliminare la directory sfuggendo alla tilde:

rm -rf \~

Funziona con tutti i tipi di personaggi speciali.


17

Puoi semplicemente inserire il nome della cartella in apostrofi:

 rm '~'

6

Solo un altro modo un po 'più complesso per farlo è usare i numeri di inode:

$ ls -li
total 24
 7146369 drwxr-xr-x   4 user  staff   136 Jan 19 21:50 ~
$ find . -xdev -inum 7146369 -exec rm -rf {} \;

Professionisti

  • Funziona con un nome stravagante che puoi avere.
  • Dovrebbe essere sicuro perché i numeri di inode sono univoci ( -xdev: non discendono le directory su altri filesystem) e puoi prima testare la ricerca, per ogni evenienza, rimuovendola -exec rm -rf {} \;.

Contro

  • Fare find .in una directory con molti file e / o directory richiederà molto tempo e lettura del disco.

Mi sono sempre interessato agli inode e mi chiedevo se fosse possibile farlo =)
theTuxRacer,

Ovviamente, questo funziona solo se il tuo filesystem attuale ha il concetto di un inode (non tutti i filesystem supportati da Ubuntu hanno questo concetto - sebbene la maggior parte di quelli che non sono filesystem Unix nativi come vFat e NTFS)
Billy ONeal
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.