如何在bash中转义“-”


14

可能的重复:
Unix工具:如果文件名减去某物怎么办?

请告诉我如何避免这种情况:

[root @ unix〜]#./-sh
-bash:./-sh:权限被拒绝
[root @ unix〜]#chmod + x -sh
chmod:无效模式:-sh
尝试使用“ chmod --help”以获得更多信息。
[root @ unix〜]#

#chmod a + x“ \\-sh” chmod:无法访问`\\-sh':没有这样的文件或目录
soundhax 2013年

Answers:


24

使用--

例如chmod +x -- -sh。在GNU语言中,--意味着选项的结尾,因此-sh不再被解析为选项。

[编辑]添加了示例:

甲虫:/ home / hennes / test> touch--sh

甲虫:/ home / hennes / test> ls -l--sh
-rw ------- 1 hennes用户0 2013-01-04 17:20 -sh

甲虫:/ home / hennes / test> chmod + x--sh

甲虫:/ home / hennes / test> ls -l--sh
-rwx ------ 1 hennes用户0 2013-01-04 17:20 -sh

有趣的是,尽管它适用于GNU printf,但它似乎不适用于GNU echo。这工作:printf -- -sh。这并不:echo -n -- -sh
卢卡斯·波克尼
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.