From: Zach Riggle <firstname.lastname@example.org> To: Zsh Users <email@example.com> Subject: Collapse a file path to the shortest representation Date: Fri, 13 May 2022 12:53:37 -0500 [thread overview] Message-ID: <CAMP9c5kFDdOK4PS2-prd4oxk69fkXCXstANkM4Skjg0Law0DCg@mail.gmail.com> (raw) [-- Attachment #1: Type: text/plain, Size: 1078 bytes --] Is there a ZSH standard way to collapse a file path to its shortest representation that would be idempotent per Chapter 14.7? For example, one might echo "$filepath" | sed -E "s|$HOME/?|~/|" echo "$filepath" | sed -E "s|$HOME/?|\$HOME/|" In order to turn /home/username/bar/baz → ~/bar/baz /home/username/bar/baz → $HOME/bar/baz To achieve this effect. From the documentation, "14.7 Filename Expansion" has a lot of ways that paths can be expanded, including... 14.7.2 ... the path is checked to see if it has a named directory as its prefix. If so, then the prefix portion is replaced with a ‘~’ followed by the name of the directory .... Is there a standardized way to access this expansion with e.g. /path/to/somedir → ~SOMEDIR/foo? I expect this can be implemented manually by parsing the output of "hash -d" or similar, but I figured it was worth asking if there's an easy interface to this. I'm not concerned as much about "14.7.1 Dynamic named directories" but for completeness it would be neat. *Zach Riggle* [-- Attachment #2: Type: text/html, Size: 2197 bytes --]
next reply other threads:[~2022-05-13 17:55 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-05-13 17:53 Zach Riggle [this message] 2022-05-13 18:03 ` Mikael Magnusson 2022-05-18 22:42 ` Zach Riggle
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAMP9c5kFDdOK4PS2-prd4oxk69fkXCXstANkM4Skjg0Law0DCg@mail.gmail.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: Collapse a file path to the shortest representation' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://git.vuxu.org/mirror/zsh/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).