如何快速通过terminal(bash shell)删除文件和目录

从terminal窗口:
当我使用rm命令时,它只能删除文件。
当我使用rmdir命令只删除空的文件夹。

如果我有一个文件夹和文件夹中的文件和文件夹等目录,有没有办法删除所有的文件和文件夹没有所有艰苦的命令input?

如果它有所作为,我从terminal使用mac bash shell,而不是Microsoft DOS或linux。

 rm -rf some_dir 

-r“recursion”-f“强制”(禁止确认消息)

小心!

 rm -rf * 

将删除当前目录中的所有内容(文件夹和文件)。

不过要小心! 只有在您确定的情况下才能执行此命令,以确保您位于正确的目录中。

就在这里。 -r选项告诉rm是recursion的,并删除以其参数为根的整个文件层次结构; 换句话说,如果给定一个目录,它将删除它的所有内容,然后执行一个有效的rmdir

你应该知道的另外两个选项是-i-f-i代表互动; 它使rm在删除每个文件之前提示您。 -f代表f orce; 它继续前进,删除所有内容而不问。 -i更安全,但-f更快; 只有在你确定删除正确的东西的时候才使用它。 你可以用-r指定或不指定。 这是一个独立的设置。

和往常一样,你可以组合开关: rm -r -i只是rm -ri ,而rm -r -frm -rf

另外请注意,你学习的东西适用于每一个Unix操作系统上的bash :OS X,Linux,FreeBSD等等。实际上,在每个Unix操作系统的每个shell中rm的语法都是一样的。 OS X是一个真正的BSD Unix系统。

所以我一直在寻找一种方法来删除目录中的所有文件,除了一些目录和文件,我想保持周围。 经过多次search,我devise了一种使用find的方法。

 find -E . -regex './(dir1|dir2|dir3)' -and -type d -prune -o -print -exec rm -rf {} \; 

本质上它使用正则expression式来select要从结果中排除的目录,然后删除剩余的文件。 只是想把它放在这里,以防别人需要它。