bash-删除所有目录(和内容),但不删除pwd中的文件


19

我想从pwd中删除所有目录,但将文件放在pwd中。如果我的密码是:

mydir1
mydir2
myfile1
myfile2

那我只想留下

myfile1
myfile2

我认为我需要使用 rm -r -i

我对么?

Answers:


10

否,因为您未指定任何内容,因此不会为您提供“缺少操作数”。放置一个will *也会提示输入文件。

我会尝试:

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

mindepth 1会排除.从结果时,maxdepth 1将排除尝试将反正被删除(因此创建一个警告)的目录下做。但是实际上,如果您同意发出一些“无害”警告,则可以将它们都排除在外。


21

我在某个地方找到了这个:

rm -r */

似乎是最简单的方法。以您的示例为例,您必须确认每种情况,如果有5个文件就可以,但是对于较大的文件结构,则不是采用交互方式的方法...就像一个建议,如果它是重要信息,请制作一个备份...


1
这也将遵循符号链接,在这里很可能不需要。
JdeBP 2014年



-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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.