Usuwanie folderu o nazwie ~

30

To jest wynik działania 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

Nie mogę tego zrobić, rm -rf ~ ponieważ spowoduje to usunięcie mojego katalogu domowego.

Co powinienem zrobić? To nie jest dla mnie problem, ale po prostu ból.

theTuxRacer
źródło
8
Unikałbym pisania rm -rfna czymś, co może spowodować błąd, jeśli popełnisz błąd. Zastanów się nad wprowadzeniem ./~folderu i usunięciem jego zawartości przed przeniesieniem katalogu i uruchomieniem go, rmdir ./~aby usunąć sam katalog ~.
adamnfish

Odpowiedzi:

58

rm -R ./~

To sprawi, że będzie szukać ~w bieżącym folderze.

Ward Muylaert
źródło
wow, sposób patrzenia na rzeczy prosto! sława!
theTuxRacer
2
Ta odpowiedź jest poprawna, ale myślę, że odpowiedź Oli jest lepsza, ponieważ jest bezpieczniejsza. Jeśli nieco pomylisz to polecenie, trwale usuniesz swój system.
HDave
44

Popełniłem już głupie błędy, rmwięc oto kilka wskazówek, których nauczyłem się przez lata, aby zabezpieczyć twoje dane przed wypadkami:

  1. Użyj rozwiązania graficznego, takiego jak Nautilus. Delikatnie usuń go do kosza. Następnie, gdy wiesz, że nie przeniosłeś $HOMEśmieci do kosza (wszystko zaczęłoby się załamywać i wyglądać funky), opróżnij kosz.

  2. Przenieś zamiast usuwać. Zmień nazwę katalogu mv, np .:

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

    Następnie usuń go.

  3. W razie wątpliwości użyj -iflagi w kontaktach z potencjalnymi fubarami. Będzie monitował o każdy usunięty plik i powinien bardzo szybko wiedzieć, czy coś złego się wydarzy.

    oli@bert:~/Desktop$ rm -rfi ./del/
    rm: descend into directory `./del'? y
    rm: remove regular file `./del/output2.pdf'?
Oli
źródło
1
cant GUI, to terminal ssh: P Dobry pomysł na temat mv. Myślę, że powinienem zrobić alias rm za pomocą rm -i.
theTuxRacer
7
Możesz ssh://user@ip/folderwpaść w nautilus. Nie działa na wszystko (np. Jeśli potrzebujesz sudo), ale proszę bardzo. Aliasing -ito obosieczny miecz. Jest to pomocne, ale także bardzo irytujące, gdy robisz dużo plików. Zastanów się -Iteż. I spójrz na man rmwięcej wskazówek.
Oli
+1 za pomysł przeniesienia. Teraz zastanawiam się, dlaczego nie ma drop- rminu dla tych ruchów do (powiedzmy) ~ / .Trash.
ShreevatsaR
19

Genialny problem :)

Możesz usunąć katalog, uciekając przed tyldą:

rm -rf \~

Działa to dla wszystkich rodzajów znaków specjalnych.

Stefano Palazzo
źródło
17

Możesz po prostu upiec nazwę folderu na apostrofy:

 rm '~'
Yuriy Voziy
źródło
6

Kolejnym, nieco bardziej złożonym sposobem na to jest użycie numerów i-węzłów:

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

Plusy

  • Działa z wathever wymyślną nazwą, którą możesz mieć.
  • Powinno być bezpieczne, ponieważ numery i-węzłów są unikalne ( -xdev: nie schodź z katalogów w innych systemach plików) i możesz najpierw przetestować wyszukiwanie, na wszelki wypadek, usuwając -exec rm -rf {} \;.

Cons

  • Robienie find .w katalogu z dużą ilością plików i / lub katalogów zajmie dużo czasu i odczytu dysku.
superfav
źródło
Zawsze interesowałem się i
węzłami
Oczywiście działa to tylko wtedy, gdy twój obecny system plików ma pojęcie i-węzła (nie wszystkie systemy plików obsługiwane przez Ubuntu mają tę koncepcję - chociaż większość z tych, które nie są natywnymi systemami plików Uniksa, takimi jak vFat i NTFS)
Billy ONeal