I accidentally discovered that both “cd …” and “…” work, and moreover, I can add more dots to go back further! I’m using zsh on iTerm2 on macOS. I’m pretty sure this isn’t a cd feature. Is this specific to zsh or iTerm2? Are there other cool features I just never knew existed??

I’m so excited about an extra dot right now.

Each instance of . is a relative level to your current directory. ‘cd .’ changes your directory to your current directory. ‘cd …’ (edit: on mobile this keeps changing to three periods but it should just be two) changes it to the directory above, ‘cd ….’ would change it to three directories above. This is standard in *nix (Unix and Linux) operating systems

Edit 2: this is very wrong

That’s definitely not standard. Maybe your distro or shell has this configured that way. The actual standard thing is that each directory has entries for . and .., as you can see in ls -a.

Yup, that’s what I’ve always understood. Seems like this is zsh-specific, since using the default Terminal app with zsh also works. Do you know if other shells (fish, csh, etc.) support this syntactic sugar? Anything else zsh has that I should know?

Well, I’m a fish guy, so there’s two things I can tell you:

  1. fish does not support this particular syntactic sugar.
  2. You can get fish-like autosuggestions in zsh via this: https://github.com/zsh-users/zsh-autosuggestions
@0x4E4F@infosec.pub
link
fedilink
English
21Y

Though I use fish as well, this is some good info 👍.

P'undrak
link
fedilink
21Y

Eshell, the Emacs shell, supports this feature out of the box, regardless of the OS it runs on.

This is standard in *nix (Unix and Linux) operating systems

No, it very much isn’t.

Yeah you’re right. I wrote this before sleep and after sleep it’s hilariously wrong lol. Oh well I’ll leave it as a cautionary tale

Not really. . and .. are the only standard directory entries that are added by the system.

Some shells may extrapolate from that by adding ... to go two directories up, but ... can just as well be the name of an actual file or directory.

I’ve always thought it was funny how *nix lets you name things in a way that makes it miserable for others lol. I think I had a directory named - because of a mkdir syntax error.

@rnd@beehaw.org
link
fedilink
English
21Y

I guess this is an interesting contrast to Windows, where not only certain characters (like ? or * or |) are banned, but also entire filenames that used to refer to device files in DOS (con, prn, lpt1, etc.)

Really? Doesn’t seem to work when I use bash:

bash-3.2$ cd a/b/c/d/e
bash-3.2$ ...
bash: ...: command not found
bash-3.2$ cd ...
bash: cd: ...: No such file or directory

Because you need to ln -s ../../ ... first (I’m joking)

Create a post

All things programming and coding related. Subcommunity of Technology.


This community’s icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

  • 1 user online
  • 2 users / day
  • 2 users / week
  • 8 users / month
  • 98 users / 6 months
  • 1 subscriber
  • 302 Posts
  • 2.15K Comments
  • Modlog