在 shell 中使用 -h_some_file_name 删除文件

在 shell 中使用 -h_some_file_name 删除文件

我在尝试删除名为的文件时遇到问题-h_some_file_name,这是因为我生成的脚本忘记检查前缀。

如果我运行该命令,rm '-h_some_file_name'它会返回错误rm: invalid option -- 'h'

如果我尝试更改名称,然后使用mv '-h_some_file_name' new_filename它返回将其删除mv: invalid option -- 'h'

问题: 如何删除与-h_some_file_nameshell 中名称相同的文件?如果使用 gui,我可以右键单击并移至垃圾箱,但在 shell 中只会返回错误

答案1

只是:

rm -- -h_some_file_name

或者:

rm ./-h_some_file_name

请参阅的手册页rm

   To remove a file whose name starts with a `-', for example `-foo', use one of these
   commands:

          rm -- -foo

          rm ./-foo

参数--表示rm所有后续参数都不应被视为参数。许多其他 Linux/Unix 命令行工具都支持该参数。此解释--遵循 POSIX 参数解析约定1)。该mv实用程序也支持它:

mv -- -h_some_file_name new_file_name

1)开放群组基础规范第 7 期,IEEE 标准 1003.1,指南 10

答案2

您可以使用通配符。在这种情况下,您可以使用“*”通配符。

转到要删除此类文件的目录,或者您需要在命令中提及完整路径。

将终端提示符设置为您的目录后,输入以下内容

rm ./-h*

欲了解更多信息,可以查看以下链接:http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm

欲了解更多信息,请关注一些与 bash 相关的书籍。

相关内容