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.