我在尝试删除名为的文件时遇到问题-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_name
shell 中名称相同的文件?如果使用 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
答案2
您可以使用通配符。在这种情况下,您可以使用“*”通配符。
转到要删除此类文件的目录,或者您需要在命令中提及完整路径。
将终端提示符设置为您的目录后,输入以下内容
rm ./-h*
欲了解更多信息,可以查看以下链接:http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm
欲了解更多信息,请关注一些与 bash 相关的书籍。