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

ato*_*3ls 25 linux bash mingw

我想从密码中删除所有目录,但将文件单独留在密码中。如果我的密码的内容是:

mydir1
mydir2
myfile1
myfile2
Run Code Online (Sandbox Code Playgroud)

那么我想只剩下

myfile1
myfile2
Run Code Online (Sandbox Code Playgroud)

我假设我需要使用 rm -r -i

我对么?

小智 27

我在某处找到了这个:

rm -r */
Run Code Online (Sandbox Code Playgroud)

似乎是最简单的方法。对于您的示例,您必须确认每个案例,如果您有 5 个文件就可以了,但是对于更大的文件结构,交互模式不是要走的路......作为一个建议,如果它是重要信息,请制作一个备份...

  • 这也将遵循符号链接,这在这里很可能是不需要的。 (2认同)

小智 16

不,因为您没有指定任何内容,所以会给您“缺少操作数”。放置 a*也会提示输入文件。

我会尝试:

find -mindepth 1 -maxdepth 1 -type d -exec rm -r {} \;
Run Code Online (Sandbox Code Playgroud)

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


WeS*_*See 12

rm -rf ./*/
Run Code Online (Sandbox Code Playgroud)

这避免了交互模式,只删除本地目录中的目录。