我知道这可能会破坏我的系统并使其混乱不堪,但是是否可以命名或重命名文件,使其/
名称中包含 s (这对于需要发送到同样疯狂的服务器的文件来说是必要的 - 嗯,有点,这更像是一种疯狂的解决方法)?我正在运行带有 GNOME 3.18 的 Ubuntu GNOME 15.10,并且我尝试对大多数程序执行此操作,它们要么用该文件创建一个文件夹,因为它们将 之前的内容/
视为文件夹,将其之后的内容视为文件名,或者只是给我一个错误。
原因:
我需要它的具体原因是因为我设置了一个很顽固的服务器,现在它不会改变其配置文件所在位置的想法。但是我不小心/
在文件名称中加入了 ,所以它认为配置文件而不是在~/configuration/files/config1.conf
...~/configuration/files/con/fig1.conf
所以你可能会说我应该创建一个文件夹files
并命名为con
,然后将配置文件命名为fig1.conf
,但是服务器目前甚至不允许创建新目录或任何其他东西...所以我认为我唯一的希望是暂时在文件名中加上正斜杠,直到它退出锁定模式。
答案1
是否可以命名或重命名文件,以使其名称中包含/s [...]?
不,原因很明显。
例如,假设您有一个包含以下内容的目录:
- 名为“foo”的目录,包含名为“bar”的文件
- 名为“foo/bar”的文件
/path/to/foo/bar # file named "bar" in the directory named "foo"
/path/to/foo/bar # file named "foo/bar"
引用其中任何一个都会产生歧义。
如果您好奇限制是在哪里施加的,那是在内核级别,为了符合文件系统的规范。
一般来说,除了/
(unicode 002f
) 和\0
(unicode 0000
) 之外,任何字符都可以在文件名中使用,并且像.
和 这样的文件名..
也是不允许的。
答案2
在 Mac OS 终端中,重命名时可以将斜线替换为冒号 (:),在 Finder(图形文件管理器)中查看文件时,文件名中输入冒号的位置应该会出现斜线。这可能也适用于 Linux。
答案3
这是可以做到的,但并不容易,效果也不好,而且不推荐(当尝试删除文件时会产生问题。
只需使用 unicode 替代即可。linuxanswers.com 上有更好的解释。
bash
使用 unicode“小数斜杠”的 shell 示例U+2044
bash# >test$'\xe2\x88\x95'file
bash# ls --show-control-chars
test∕file
bash# ls
test???file
我不知道服务器是否可以访问该文件,但 Ubuntu 可以。如果可能的话,您可能必须在服务器端为其设置别名。(自 Windows 95 时代以来,就再也没有接触过 Windows 安装)。