这个“查找”命令怎么了?


14

我正在执行以下命令(以查找所有带有.ts扩展名的文件并删除它们):

find . -type f -name "*.ts" –delete

显示错误:

find: paths must precede expression: `–delete'

我做错了什么?

Answers:


35

您有印刷符号,而不是减号(-)。

将命令更改为

find . -type f -name "*.ts" -delete

有关完整的语法,请参见man find

动作
       -delete

        删除文件; 如果删除成功,则为true。如果删除失败,则会发出错误消息。
        如果-delete 失败, find则其退出状态将为非零(最终退出时)。
        使用-delete自动打开该-depth选项。


从博客和富文本处理器复制和粘贴命令时要小心。他们可以将一些印刷符号转换为它们的纯文本等效形式,反之亦然。

考虑下一次对注释使用简单的文本编辑器-使用纯文本,Markdown或reStructuredText。

正如@AuxTaco提到的- 一些博客可能依靠您的复制来攻击您的计算机



在这种特殊情况下,我们不知道该命令的来源。如果原始作者错误地将--其转换为。所以我们不知道整个故事:)
N0rbert

2
我可以讲一个故事:我将其从终端复制粘贴到包含命令集的MS Word文档中,以部署我们的服务器。在某些情况下,MS Word会自动修复破折号。然后一年或更长时间,我复制了该命令,问题就打开了……谢谢。
多拉德

1
在这种情况下,最好使用Notepad ++,而不要使用Word。
Davidw

1
切勿使用文字处理器来编辑代码。这(一个很大的原因)是为什么仍然有文本编辑器。您需要的最后一件事是替换字符或自动换行。
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.