web-dev-qa-db-ja.com

〜という名前のフォルダーを削除しています

これは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 ~を実行できません。

私は何をすべきか?私にとっては問題ではありませんが、ただの痛みです。

30
theTuxRacer

rm -R ./~

これにより、現在のフォルダーで~が検索されます。

58
Ward Muylaert

以前にrmで愚かな間違いを犯したことがあるので、事故からデータを安全に保つために長年にわたって学んだいくつかのヒントを以下に示します。

  1. Nautilusのようなグラフィカルソリューションを使用します。ゴミ箱にソフト削除します。その後、$HOMEをゴミ箱に移動していないことがわかったら(すべてがクラッシュしてファンキーに見えるようになります)、ゴミ箱を空にします。

  2. 削除する代わりに移動します。ディレクトリの名前をmvで変更します。例:

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

    次に削除します。

  3. 疑わしい場合は、潜在的なfubarを処理するときに-iフラグを使用してください。削除されたすべてのファイルについてプロンプトが表示され、何か悪いことが起こるかどうかを非常に迅速に知らせる必要があります。

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

素晴らしい問題:)

でディレクトリを削除できます エスケープ チルダ:

rm -rf \~

これは、あらゆる種類の特殊文字で機能します。

19
Stefano Palazzo

フォルダー名を単純にアポストロフィにまとめることができます。

 rm '~'
17
Yuriy Voziy

もう1つのもう少し複雑な方法は、iノード番号を使用することです。

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

長所

  • それはあなたが持つことができるwatheverの派手な名前で動作します。
  • safeである必要があります。なぜなら、iノード番号は一意であるため(-xdev:他のファイルシステムのディレクトリを下ってはいけない)、念のため-exec rm -rf {} \;を削除して最初に検索をテストできます。

短所

  • 多数のファイルやディレクトリを含むディレクトリでfind .を実行するには、多くの時間がかかり、ディスクの読み取りに時間がかかります。
6
superfav