bash-pwd内のファイルではなく、すべてのディレクトリ(および内容)を削除します


19

pwdからすべてのディレクトリを削除しますが、pwdのファイルはそのままにします。私のpwdのコンテンツが次の場合:

mydir1
mydir2
myfile1
myfile2

それから私はちょうど残されたいです

myfile1
myfile2

私は使用する必要があると思います rm -r -i

私は正しいですか?

回答:


10

何も指定しなかったので、「オペランドがありません」ということになります。を置くと、*ファイルの入力も求められます。

私は試してみます:

find -mindepth 1 -maxdepth 1 -type d -exec rm -r {} \;

mindepth 1除外します.結果から、maxdepth 1いずれにせよ(したがって、警告を作成する)削除されますディレクトリの下にやろうとして除外します。しかし、実際には、いくつかの「無害な」警告があることに同意する場合は、両方を除外できます。


21

私はこれをどこかに見つけました:

rm -r */

最も簡単な方法のようです。あなたの例では、各ケースを確認する必要があります.5つのファイルがある場合は問題ありませんが、ファイル構造が大きい場合は対話モードを使用することはできません...バックアップ...


1
また、シンボリックリンクもたどりますが、おそらくここでは望ましくありません。
JdeBP 14

8

使用する

rm -rf ./*/

これにより、インタラクティブモードが回避され、ローカルディレクトリ内のディレクトリのみが削除されます。


以下のようJdeBPが指摘した上でマーティンの非常によく似た答えは、現在の(トップレベル)ディレクトリは他のディレクトリへのシンボリックリンクが含まれている場合、彼らはまた、(それらがまたは現在のディレクトリに従属していなくても)削除されます。
スコット


-1
you can also try in this way to delete only all folders not files from any location in linux.

    #delete only all dir and don't touch files
    #!/bin/bash
    for dir in `ls -l | grep ^d | awk '{print $9}'`
    do
    echo "going to delete $dir " `rm -rf $dir`
    done
    ls
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.