【发布时间】:2016-07-21 06:48:23
【问题描述】:
当我尝试通过 rmdir 使用终端删除该文件夹后,我使用名为“\”的 GUI 在桌面中创建了一个文件夹。然后我无法删除它。这是什么原因???
【问题讨论】:
-
请给出您在尝试删除时收到的错误信息。
当我尝试通过 rmdir 使用终端删除该文件夹后,我使用名为“\”的 GUI 在桌面中创建了一个文件夹。然后我无法删除它。这是什么原因???
【问题讨论】:
问题在于\ 是一个特殊字符,在rmdir 程序得到它之前被shell 拦截并使用(“扩展”)。所以你需要引用这个字符来表示shell不应该弄乱它。有(至少)两种方式:
rmdir \\
rmdir '\'
注意第二个:单引号,而不是双引号(\ 在双引号内展开)。
作为一个练习,你将如何删除名为-\ 的目录?
【讨论】:
您需要转义字符以删除 rmdir \\ ,添加 -v 标志以表示详细 i.e. rmdir -v \\
$ mkdir \\
$ ls -lrt \\
total 0
$ rmdir -v \\
rmdir: removing directory, `\\'
【讨论】:
-v 标志在这里很方便 ++
你只需要给 bash 一个命令行,它的参数是单个 \(在 bash 扩展之后)。
最简单的是:rmdir '\'
最基本的就是转义\:rmdir \\
甚至在双引号内:rmdir "\\"
使用八进制转义数:rmdir $'\134'
或rmdir "$(echo -e '\0134')"
或rmdir "$(printf '%b\n' '\134')"
使用十六进制值:rmdir $'\x5c'
或rmdir "$(echo -e '\x5c')"
或rmdir "$(printf '%b\n' '\x5c')"
【讨论】:
键入 rmdir '\' 删除该文件夹
【讨论】: