假设我位于主目录,有一个名为“Apple”的目录,该目录有 2 个目录(假设我不知道它们的名称),其中包含内容和几个文件。我在家里打开终端,我想删除“Apple”中的这两个目录,而不使用 cd。
我不能使用'rm -r home/Apple/*/'我也不能使用'rmdir 主目录/Apple/*'。
帮助?
答案1
我假设您所说的“主目录”是指您的主目录,即不带参数~
执行后最终得到的目录cd
,而不是目录/home
。
您有两个~/Apple
要删除的目录,我们将它们称为dir1
和dir2
。假设您还有其他不想删除的目录,您可以使用
rm -rf ~/Apple/dir1 ~/Apple/dir2
删除这两个目录及其所有内容。如果您位于主目录中,则可以省略~/
该命令中的两个路径名。
如果这些是仅有的目录~/Apple
,那么你可以使用
rm -rf ~/Apple/*/
删除Apple
主目录中该目录的所有子目录。通配模式*/
只能解析为目录,因此只要使用该尾部斜杠,非目录Apple
就不会受到影响。同样,~/
如果您位于主目录中,则可能会被忽略。
显然,您应该在正确备份的数据上进行测试,以便在由于输入错误而删除太多数据时能够恢复它。
答案2
您可以find
直接在 Apple 内部查找所有目录,然后将其删除
find home/Apple -type d -maxdepth 1 -mindepth 1 -exec rm -rf {} \;