linux – Unix命令删除了每个目录,即使没有指定
我是unix的新手.我运行了以下命令.
以上命令删除了文件夹中的每个目录. 谁能解释我为什么? 最佳答案
ls -l命令给出了当前present-working-directory(PWD)中所有子目录的列表.
rm命令可以删除多个文件/目录,如果您将它们作为列表传递给它. 例如:rm test1.txt test2.txt myApp将删除所有三个名称为的文件:
此外,您使用的rm命令的标志在许多愚蠢行为中很常见. 所以,假设您在/ home / user中,目录结构如下所示:
ls -l命令将提供包含“dir1 dir2 file1.txt”的列表,以及命令ls -l |的结果. xargs rm -rf将如下所示: 如果我们使用上面的示例扩展您的原始问题,那么传递给系统的最终命令将变为: 因此,当前目录中的所有内容都会被删除,因此bark.*是多余的(您有效地告诉机器无论如何都要销毁当前目录中的所有内容). 我想你要做的是删除当前目录中的所有文件以及以bark开头的所有子目录(recurse).要做到这一点,你只需要这样做: 上面的命令意味着“查找此目录和子目录中的所有文件,忽略大写/小写/ mIxEdCaSe,以字符”bark.“开头,并删除它们”.如果您有拼写错误,这仍然可能是一个错误的命令,所以可以肯定的是,您应该在执行批量删除之前进行测试. 将来,首先要执行以下操作以获取您将首先删除的所有文件的列表,以确认它们是您要删除的文件. 然后,如果您确定,请通过删除它们 希望这可以帮助. 作为一个幽默的说明,这里可以找到最着名的“rm -rf”实例之一: 自动脚本运行类似rm -rf /usr/local / ………,但由于意外插入空格,命令变为rm -rf /usr/local / ……,所以这实际上意味着“删除所有以usr或local开头的根文件夹”,有效地破坏了使用它的任何人的系统.我觉得这个开发人员不好. 您可以通过引用字符串来避免这些类型的错误,即: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |