UNIX:删除名称以 – (破折号)字符开头的文件
您可以使用标准 UNIX 或 Linux rm 命令删除以-或开头的文件名。您所要做的就是通过在文件名前传递双破折号选项--来指示 rm 命令不遵循命令行结束标志。---foo
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 或 Unix 终端 |
类别 | 文件管理 |
操作系统兼容性 | BSD • Linux • macOS • Unix |
预计阅读时间 | 3 分钟 |
Linux 和 UNIX:删除名称以 – (破折号)字符开头的文件
许多用户会不小心用破折号创建此类文件。如果您尝试通过 rm 命令删除此类文件,UNIX 和 Linux 将尝试将它们用作命令行选项,并且该命令将显示错误。那么如何在 UNIX 上摆脱这些文件并删除它们?图 01:使用 —— 破折号 —— 删除文件
$ rm --foo
您最终可能会收到错误:
rm: unrecognized option '--foo'
或者
rm : illegal option -- -
您可能会看到的另一个错误:
rm: invalid option -- 'f'
那么让我们看看如何删除名称以-或开头的文件--。
---rm 命令语法用于删除以单 ( ) 破折号开头的文件
使用 rm 命令删除文件或目录,如下所示:
另一种语法如下:
或双破折号“-”表示“命令行标志结束”。它告诉 ssh 或任何其他有效的 shell 命令不要尝试解析命令行选项后面的内容。
$ rm -- -foo
$ rm -- --foo
$ rm ./-foo
$ rm ./-filename
删除名称以连字符“-”开头的文件并确认
出于系统安全考虑,处理奇怪的文件名时最好进行视觉确认。因此,至少要按如下方式传递-i和:-v
$ rm -i ./--weird-file---name
rm -i -v -- --fileNameHere
删除以破折号/连字符和空格开头的文件
如果文件名中有空格,请将其放在单引号中。例如,假设文件名是“ -- My Resume . txt”,则:
$ rm -i -v -- '-- My Resume . txt'
$ rm -i -v -- '/path/to/dir/-- My Resume . txt'
$ rm -i -v -- "/path/to/dir/-- My Resume . txt"
## OR ##
$ rm -i -v ./'-- My Resume . txt'
$ rm -i -v '/path/to/dir/-- My Resume . txt'
删除名称以“-”和空格开头的文件
其他选项 Unix 命令选项用于删除带有破折号的文件
还有一些选项可以在类 Unix 系统上删除----破折号:
您也可以在当前目录或“/path/to/directory”中使用 find 命令。
或者,您也可以使用UNIX / Linux inode 编号在您的 macOS、Linux、*BSD 和类 Unix 系统上删除具有奇怪名称的文件。--
$ rm ./-Foo
$ rm "./---bar"
$ rm -- -F
$ rm -- ---footbar
## Edit the file ##
$ vi "./--foo"
$ find . -name '--my-FileNameGoes-Here' -delete
$ find /path/to/directory/ -name '---filename with a white spaces' --delete
获取帮助
rm 命令带有更多选项。因此,您可以使用 man 命令或 help 命令在 Unix 机器上阅读 rm 命令文档:
$ man rm
$ rm --help
$ man bash
$ man zsh
总结
您学习了各种 Linux 和 Unix 命令行方法,使用 rm 和 find 命令删除名称以“-”或“--”开头的文件。