我正在尝试rm目录及其内容,但是无论出于何种原因rm都忽略了转义字符。
在这个例子中,我试图Team Fortress 2从~/.local/share/Steam/SteamApps/common以下位置删除文件夹:
[redacted@host common]$ rm -r Team\ Fortress\ 2/
/usr/bin/rm: cannot remove ‘Team’: No such file or directory
/usr/bin/rm: cannot remove ‘Fortress’: No such file or directory
/usr/bin/rm: cannot remove ‘2/’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我还尝试将目录名称用引号括起来:
[redacted@host common]$ rm -r 'Team\ Fortress\ 2/'
/usr/bin/rm: cannot remove ‘Team\\’: No such file or directory
/usr/bin/rm: cannot remove ‘Fortress\\’: No such file or directory
/usr/bin/rm: cannot remove ‘2/’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这是来自的输出rm --version:
rm (GNU coreutils) 8.21
...
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?
Den*_*nis 11
我的第一个猜测是rm是一个定义不明确的函数或脚本,例如,类似
rm()
{
/usr/bin/rm -i $1
}
Run Code Online (Sandbox Code Playgroud)
要找出答案,请执行以下命令:
type rm
Run Code Online (Sandbox Code Playgroud)
如果我错了,它会说:
rm is /usr/bin/rm
Run Code Online (Sandbox Code Playgroud)
如果我是对的,它会准确地告诉您rm是如何重新定义的。
| 归档时间: |
|
| 查看次数: |
246 次 |
| 最近记录: |