我正在尝试删除我的音乐收藏文件夹。使用命令
ls -al /mnt/media/Music/
我可以看到该文件夹 - 只有它的?
名称末尾有一个,所以它看起来像这样:
drwxrwxr-x 1 reuben reuben 0 Mar 3 15:24 Twin Shadow - Eclipse (2015) [FLAC]?
但是当我尝试用这个命令删除它时:
rmdir /mnt/media/Music/Twin\ Shadow\ -\ Eclipse\ \(2015\)\ [FLAC]\?/
然后我得到这个:
rm: cannot remove '/mnt/media/Music/Twin Shadow - Eclipse (2015) [FLAC]?/': No such file or directory
我很困惑;我错过了什么?我希望这不是很明显的事情!
答案1
目前为止,在终端中处理此类文件名的最简单方法是利用 shell 的制表符完成功能:输入足够多的名称以确保其无歧义,例如
rmdir /mnt/media/Music/Twin\ Shad
然后打TAB
第二种最简单的方法 - 至少如果名称本身不包含引号 - 就是引用整个内容,例如
rmdir '/mnt/media/Twin Shadow - Eclipse (2015) [FLAC]?'
(在这种情况下双引号也应该起作用)。
如果你真的需要使用反斜杠转义,那么括号和方括号都是 shell 元字符,也必须转义。
rmdir /mnt/media/Music/Twin\ Shadow\ -\ Eclipse\ \(2015\)\ \[FLAC\]\?/
(-
不需要转义 —— 尽管这样做也没有什么坏处)。