Видалення папки з ім'ям ~


30

Це вихід 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

Я не можу, rm -rf ~ бо це видалить домашній каталог.

Що я повинен зробити? Для мене це не проблема, а просто болі в очах.


8
Я б уникав писати rm -rfщось із таким потенційним збоєм, якщо ви неправильно введете текст. Подумайте про те, щоб ввести ./~папку та видалити її вміст звідти перед тим, як перемістити каталог і запустити, rmdir ./~щоб видалити сам каталог ~.
adamnfish

Відповіді:


58

rm -R ./~

Це дозволить шукати його ~в поточній папці.


Ух, спосіб дивитись на речі прямо! кудо!
theTuxRacer

2
Ця відповідь правильна, але я вважаю, що відповідь Олі краща, оскільки вона безпечніша. Якщо ви злегка введете цю команду, ви назавжди залиште її.
HDave

44

Я раніше робив нерозумні помилки, rmтому ось кілька порад, які я навчився роками намагатися захищати дані від нещасних випадків:

  1. Використовуйте таке графічне рішення, як Nautilus. Програмне забезпечення видаліть у кошик. Тоді, коли ви знаєте, що не перенесли $HOMEкошик у кошик (усе почало б виходити з ладу і виглядати дивно), випорожніть сміття.

  2. Перемістіть замість видалення. Перейменуйте каталог за допомогою mv, наприклад:

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

    Потім видаліть його.

  3. Якщо ви сумніваєтесь, використовуйте -iпрапор, коли маєте справу з потенційними фубар. Він підкаже вам про кожен видалений файл і повинен дуже швидко дізнатись, чи станеться щось погане.

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

1
не можна GUI, його ssh-термінал: P Хороша ідея про mv. Я думаю, я повинен зробити пс псевдонім з a rm -i.
theTuxRacer

7
Ви можете вникнути ssh://user@ip/folderв наутілус. Працює не для всього (наприклад, якщо вам потрібно судо), але ви їдете. Псевдонім -i- меч з двома острими. Це корисно, але також сильно дратує, коли ви робите багато файлів. Враховуйте -Iтакож. І подивіться на man rmдодаткові поради.
Олі

+1 для ідеї переїзду. Тепер мені цікаво, чому не існує заміни для спаду, rmяка переходить до (скажімо) ~ / .Trash.
ShreevatsaR



6

Ще один, трохи складніший спосіб зробити це за допомогою номерів inode:

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

Плюси

  • Він працює з фантазійним ім'ям, яке ви можете мати.
  • Має бути безпечним, оскільки номери inode є унікальними ( -xdev: Не спускайте каталоги в інших файлових системах), і ви можете перевірити пошук спочатку, про всяк випадок, видаливши -exec rm -rf {} \;.

Мінуси

  • Робота find .в каталозі з великою кількістю файлів та / або каталогів потребуватиме багато часу та читання диска.

Мені завжди цікавились вузли, і мені було цікаво, чи можна це зробити =)
theTuxRacer

Звичайно, це працює лише в тому випадку, якщо у вашій поточній файловій системі є поняття inode (не всі файлові системи, які підтримує Ubuntu, мають цю концепцію - хоча більшість тих, хто не є рідними файловими системами Unix, як vFat і NTFS)
Біллі ONeal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.