[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bash expanding relative paths in auto-complete
From: |
Linda Walsh |
Subject: |
Re: bash expanding relative paths in auto-complete |
Date: |
Fri, 14 Aug 2015 11:48:11 -0700 |
User-agent: |
Thunderbird |
Andreas Schwab wrote:
Linda Walsh <bash@tlinx.org> writes:
in bash 4.3.39,
if I type a command, (like "."(source)) and a relative path
like : ../conf<complete>,
it expands the relative pathname to absolute pathnames.
Worksforme. Make sure to run complete -r first.
---
Nope -- didn't change anything.
But throwing in a complete -D prevented any expansions
until I typed in complete -r again.
complete -r says to remove all completion specifications.
I tried complete -p ../l<complete> -- and that printed
out all the files starting w/'l' in my 'bin' dir
(currently in ~/bin/sys; so from there, I can type
ls ../lib and see all the lib supporting stuff under ~/bin/lib, but
it changes a typed "ls ../l -> "ls "/home/law/bin/l"
Also tried a clean environment:
env bash --norc --noprofile -- and that undefined my
aliases until I typed a new command:
Ishtar:law/bin/sys> env bash --norc --noprofile
bash: _pf: command not found
...elided 22 copies of same ...
bash: _pf: command not found
Ishtar:> which bash ##<short prompt
/bin/bash
Ishtar:law/bin/sys>
=====
Notice the 1st prompt before I type which bash doesn't
show the 'cwd' (_pf, BTW, is an alias for printf for when I'm
writing out my "spwd" (short pwd) to print out a shortened
version of my current directory for my prompt and window title).
I do have "expand_tilde", but I'm not using a tilde and the
same happens in:
Ishtar:/etc/local> ls ../rc.
rc.d@ rc.splash rc.status.orig rc.status.rpmsave*
rc.include rc.status rc.status.rpmorig* rc.status.systemd
Ishtar:/etc/local> ls /etc/rc. <<-- .. changed to /etc
I ran into this, BTW, when I was looking at a src-tree that used
symlinks w/abs. paths, so when I ran it with make clean,
the symlinks pointed at the real root-based binaries rather than
the tree-based binaries.
This resulted in "rmx -fr *" (rmx=rm --one-file-system) not seeing that the
symlinks (or mount-points) in the starting dir were on different
file systems and rm only checks to see that *descendants* of cmdline-args
are on the same FS -- which used to not be a problem when you could
do an "rmx -fr ." which would delete the contents before failing on "."
at the end (w/msg suppressed by "-f").
Sigh.