如何解决如何在不解析 Haskell 中的 realpath 的情况下切换当前工作目录?
在我的用例中,我想生成一个当前目录设置为特定目录的 shell,供用户执行某些操作,问题是用户经常将他们的 PS1
设置为打印当前工作目录,而我不这样做如果他们指定的目录是软链接的目录(指向同一个目录但路径名更短,请参见下面的示例),不希望显示长而荒谬的路径。
但是这种行为似乎无处不在,我不知道是否有办法解决:
$ cd /tmp
$ mkdir -p some/ridiculously/long/path/name/that/no/one/wants/to/see
$ ln -s /tmp/some/ridiculously/long/path/name/that/no/one/wants/to/see s
$ ghci
GHCi,version 8.8.3: https://www.haskell.org/ghc/ :? for help
Prelude> import System.Directory
Prelude System.Directory> setCurrentDirectory "/tmp/s"
Prelude System.Directory> getCurrentDirectory
"/tmp/some/ridiculously/long/path/name/that/no/one/wants/to/see"
同样适用于 turtle
的 cd
/ pushd
,它似乎使用 system-fileio
而不是 directory
,但相同的行为仍然存在。我知道 CreateProcess
的 process
有一个 cwd
记录字段,我可以在我即将生成 shell 时设置它,但这似乎也是如此。所以我已经没有其他可以尝试的想法了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。