![我可以在 Mac 上的 zsh 中使用 AmigaOS 样式的“卷名称”吗?](https://linux22.com/image/194315/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%20Mac%20%E4%B8%8A%E7%9A%84%20zsh%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20AmigaOS%20%E6%A0%B7%E5%BC%8F%E7%9A%84%E2%80%9C%E5%8D%B7%E5%90%8D%E7%A7%B0%E2%80%9D%E5%90%97%EF%BC%9F.png)
以前,在我的 Amiga 上,卷有名称,例如DF0:
软盘驱动器安装点。在 CLI 中键入内容DF0:
并将 CD 插入软盘驱动器安装点。您也可以在路径名中使用它,例如cat DF0:readme.txt
(记忆有点模糊,希望我没记错)。您可以创建自己的卷名称。我可以添加Work:
指向我选择的某个文件夹并快速到达那里。
我想这有点类似于在 Windows 中定义Z:
指向某个网络位置的方式。
有人在 Mac 上遇到过类似的 zsh 工具吗?
我意识到在 Linux 中你可以使用绑定安装来做一些事情,比如创建/work
然后绑定安装它以指向真正的工作文件夹。只需一个符号链接甚至可能会走得很远。但是有没有一个真正的解决方案,并且具有完整的:
语法?
(我不知道为什么,这可能只是怀旧,但我记得这个系统感觉非常直观并且使用起来很快。)
答案1
IMO,驱动器号很糟糕,unix 文件系统最好的事情之一就是所有东西都在下面一树状层次结构,您可以在任何您喜欢的地方安装格式化的块设备。
但如果这就是你想要的,符号链接就是实现它的方法。
您甚至可以使用其中的冒号创建符号链接,例如ln -s /path/ ~/amiga-like/DF0:
或者ln -s /other/path/ ~/dos/Z:
顺便说一句,就是这样葡萄酒和蒸汽的质子在其 wine 前缀中创建驱动器盘符符号链接。例如,如果您运行 wine,查看$WINEPREFIX/dosdevices
,您将看到一个指向各个子目录的符号链接场,如下所示:
$ ls -lF /var/games/steam2/steamapps/compatdata/414340/pfx/dosdevices/
total 4
lrwxrwxrwx 1 cas cas 10 Jul 31 23:42 c: -> ../drive_c/
lrwxrwxrwx 1 cas cas 10 Aug 1 14:15 com1 -> /dev/ttyS0
lrwxrwxrwx 1 cas cas 10 Aug 1 14:15 com2 -> /dev/ttyS1
lrwxrwxrwx 1 cas cas 10 Aug 1 14:15 com3 -> /dev/ttyS2
lrwxrwxrwx 1 cas cas 10 Aug 1 14:15 com4 -> /dev/ttyS3
lrwxrwxrwx 1 cas cas 9 Jul 31 23:42 d:: -> /dev/sdc1
lrwxrwxrwx 1 cas cas 8 Jul 31 23:42 e:: -> /dev/sdc
lrwxrwxrwx 1 cas cas 1 Jul 31 23:42 z: -> //
(是的,指向 / 的 Z: 符号链接很烦人。我已经提交了一份关于它的错误报告。Valve 的开发人员没有发现让每个 Windows 游戏从根目录向下完全访问我的 Linux 文件系统有任何问题而不仅仅是游戏自己的目录以及我可能选择授予访问权限的其他目录)。
答案2
你不可能有这个精确的语法。冒号是文件名中的普通字符;是当前目录中DF0:readme.txt
调用的文件。 DF0:readme.txt
(实际上:
在 zsh 的某些上下文中很特殊:这就是你如何应用历史修改器。但这没有您想要的结构。)
您可以使用波形符前缀而不是冒号中缀来定义类似的内容。在路径的开头扩展为~ALIAS
ALIAS
命名目录。这概括了Bourne 风格的 shell 中的情况。您可以使用以下方式定义自己的命名目录(也称为目录别名)~USERNAME
hash -d
。
hash -d DF0=/Volumes/Floppy
cat ~DF0/readme.txt
如果您想更改到目录而无需键入cd
,请确保具有setopt auto_cd
在您的 中.zshrc
,只需键入该目录的路径即可。这与目录路径的缩写方式完全正交。