>#! /bin/bash >umask 022 >export PATH=".:~/bin:/bin:/usr/bin" >alias /home/carlo/projects/savannah.which/which/build/which="$BUILDDIR/which" >touch cat; chmod 755 cat; pwd /home/carlo/projects/savannah.which/which/build >alias >/home/carlo/projects/savannah.which/which/build/which Usage: /home/carlo/projects/savannah.which/which/build/which [options] [--] COMMAND [...] Write the full path of COMMAND(s) to standard output. --version, -[vV] Print version and exit successfully. --help, Print this help and exit successfully. --skip-dot Skip directories in PATH that start with a dot. --skip-tilde Skip directories in PATH that start with a tilde. --show-dot Don't expand a dot to current directory in output. --show-tilde Output a tilde for HOME directory for non-root. --tty-only Stop processing options on the right if not on tty. --all, -a Print all matches in PATH, not just the first --read-alias, -i Read list of aliases from stdin. --skip-alias Ignore option --read-alias; don't read stdin. --read-functions Read shell functions from stdin. --skip-functions Ignore option --read-functions; don't read stdin. Recommended use is to write the output of (alias; declare -f) to standard input, so that which can show aliases and shell functions. See which(1) for examples. If the options --read-alias and/or --read-functions are specified then the output can be a full alias or function definition, optionally followed by the full path of each command used inside of those. Report bugs to . >/home/carlo/projects/savannah.which/which/build/which --version GNU which v2.23, Copyright (C) 1999 - 2025 Carlo Wood. GNU which comes with ABSOLUTELY NO WARRANTY; This program is free software; your freedom to use, change and distribute this program is protected by the GPL. >/home/carlo/projects/savannah.which/which/build/which -- --version /home/carlo/projects/savannah.which/which/build/which: no --version in (.:~/bin:/bin:/usr/bin) >/home/carlo/projects/savannah.which/which/build/which cat /home/carlo/projects/savannah.which/which/build/cat >/home/carlo/projects/savannah.which/which/build/which --show-tilde cat ~/projects/savannah.which/which/build/cat >/home/carlo/projects/savannah.which/which/build/which --show-dot cat ./cat >/home/carlo/projects/savannah.which/which/build/which --show-tilde --show-dot cat ./cat >/home/carlo/projects/savannah.which/which/build/which --skip-dot cat /bin/cat >(cd /bin; /home/carlo/projects/savannah.which/which/build/which cat) /usr/bin/cat >(cd /bin; /home/carlo/projects/savannah.which/which/build/which --show-dot cat) ./cat >(cd /bin; PATH=".:/bin:/usr/bin" /home/carlo/projects/savannah.which/which/build/which --show-dot cat) ./cat >(cd /bin; PATH="/bin:.:/usr/bin" /home/carlo/projects/savannah.which/which/build/which --show-dot cat) /bin/cat >(cd /bin; PATH=".:/bin:/usr/bin" /home/carlo/projects/savannah.which/which/build/which --skip-dot --show-dot cat) /bin/cat >/home/carlo/projects/savannah.which/which/build/which ls /bin/ls >/home/carlo/projects/savannah.which/which/build/which xxx /home/carlo/projects/savannah.which/which/build/which: no xxx in (.:~/bin:/bin:/usr/bin) >/home/carlo/projects/savannah.which/which/build/which ./ls /home/carlo/projects/savannah.which/which/build/which: no ls in (.) >(cd /; /home/carlo/projects/savannah.which/which/build/which bin/ls) /bin/ls >(cd /; /home/carlo/projects/savannah.which/which/build/which --show-dot bin/ls) ./bin/ls >(cd /; /home/carlo/projects/savannah.which/which/build/which --show-dot /bin/ls) /bin/ls >(cd /; /home/carlo/projects/savannah.which/which/build/which --show-dot bin/xxx) /home/carlo/projects/savannah.which/which/build/which: no xxx in (./bin) >(cd /; /home/carlo/projects/savannah.which/which/build/which --show-dot /bin/xxx) /home/carlo/projects/savannah.which/which/build/which: no xxx in (/bin) >/home/carlo/projects/savannah.which/which/build/which --all cat /home/carlo/projects/savannah.which/which/build/cat /bin/cat /usr/bin/cat >touch xxx >/home/carlo/projects/savannah.which/which/build/which ./xxx /home/carlo/projects/savannah.which/which/build/which: no xxx in (.) >chmod 711 xxx >/home/carlo/projects/savannah.which/which/build/which ./xxx /home/carlo/projects/savannah.which/which/build/xxx >chmod 655 cat >/home/carlo/projects/savannah.which/which/build/which cat /bin/cat >su >chown root cat >exit >/home/carlo/projects/savannah.which/which/build/which cat /home/carlo/projects/savannah.which/which/build/cat >su >chmod 545 cat >exit >/home/carlo/projects/savannah.which/which/build/which cat /bin/cat >su >chgrp bin cat >exit >/home/carlo/projects/savannah.which/which/build/which cat /home/carlo/projects/savannah.which/which/build/cat >su >chmod 541 cat >exit >/home/carlo/projects/savannah.which/which/build/which cat /home/carlo/projects/savannah.which/which/build/cat >su >rm -f cat >chown root xxx >exit >/home/carlo/projects/savannah.which/which/build/which ./xxx /home/carlo/projects/savannah.which/which/build/xxx >su >chmod 700 xxx >exit >/home/carlo/projects/savannah.which/which/build/which ./xxx /home/carlo/projects/savannah.which/which/build/which: no xxx in (.) >id uid=1000(carlo) gid=1000(carlo) groups=1000(carlo),0(root),150(wireshark),960(docker),972(deluge),973(realtime),995(audio),998(wheel) >ls -l xxx -rwx------ 1 root carlo 0 Feb 1 19:56 xxx >su >chmod 750 xxx >chgrp carlo xxx >exit >/home/carlo/projects/savannah.which/which/build/which ./xxx /home/carlo/projects/savannah.which/which/build/xxx >su >chgrp bin xxx >exit >/home/carlo/projects/savannah.which/which/build/which ./xxx /home/carlo/projects/savannah.which/which/build/which: no xxx in (.) >mkdir -p {a,b} >touch b/test >chmod 755 b/test >(cd a; /home/carlo/projects/savannah.which/which/build/which ../b/test) /home/carlo/projects/savannah.which/which/build/b/test >alias which='alias | /home/carlo/projects/savannah.which/which/build/which --tty-only --read-alias --show-tilde --show-dot' >alias test1='test1' >alias test2='echo "test2" | cat | sort' >alias test3=' echo "test2"|cat&sort' >alias test4=' ls &&sort ||/usr/bin/which || exit' >which which alias which='alias | /home/carlo/projects/savannah.which/which/build/which --tty-only --read-alias --show-tilde --show-dot' ~/projects/savannah.which/which/build/which >which test1 alias test1='test1' >which test2 alias test2='echo test2 | cat | sort' /bin/echo /bin/cat /bin/sort >which test3 alias test3=' echo test2|cat&sort' /bin/echo /bin/cat /bin/sort >which test4 alias test4=' ls &&sort ||/usr/bin/which || exit' /bin/ls /bin/sort /usr/bin/which