![在 FreeBSD 中引用包含空格的路径 - 为什么它并不总是有效?](https://linux22.com/image/120535/%E5%9C%A8%20FreeBSD%20%E4%B8%AD%E5%BC%95%E7%94%A8%E5%8C%85%E5%90%AB%E7%A9%BA%E6%A0%BC%E7%9A%84%E8%B7%AF%E5%BE%84%20-%20%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AE%83%E5%B9%B6%E4%B8%8D%E6%80%BB%E6%98%AF%E6%9C%89%E6%95%88%EF%BC%9F.png)
我的 FreeBSD 服务器上有一个目录,其内容是由 Windows 用户通过 Samba 创建的。文件名和其中的路径有时包含空格,这在 Windows 世界中很常见。
我只是尝试删除子目录中已重复的一些文件。
rm -v "New folder (1)/*"
使用单引号+双引号失败(“没有这样的目录或文件”)rm -v New\ folder\ \(1\)/*
成功了
我认为可以通过将路径放在引号内来处理路径中的空格。如果我复制/粘贴路径,那么我会发现添加引号比手动转义其中的每个空格或其他特殊字符更容易。
我需要做什么才能使第一个示例正常工作?
答案1
当您将 放在*
引号中时,它将被视为带引号的字符,因此必须将其放在引号之外,以便 shell 对其进行处理。
rm -v "New folder (1)"/*