~

Change to $HOME - zsh, bash4

To change to $HOME in that manner you need to set a shell option. In zsh it is auto_cd, hence setopt -o auto_cd in bash4 it is autocd, hence shopt -s autocd What the option does is allow you to cd to a directory by just entering its name. This also works if the directory name is stored in a variable: www=/var/www/lighttpd; $www sends you to /var/www/lighttpd. CAUTION: If a command or function name identical to the directory name exists it takes precedence.

2
By: penpen
2009-07-24 10:43:53

These Might Interest You

  • Move efficiently between directories. . This command adds a couple of extra features to cd, without affecting normal use. CDPATH use is also unaffected. It introduces and environment variable CDDIR which is used as an alternate home directory. . Note: I don't want to alter $HOME because then all my dot files will move. . Examples: . cd dir Change directory to "dir" (using CDPATH if necessary) . cd dir/file.txt Change directory to "dir" (containing folder of "file.txt") This allows you to cut'n'paste, or use . CDDIR is unset cd Change directory to $HOME . CDDIR=/home/flatcap/work cd Change directory to /home/flatcap/work . For convenience, put the command, and the following, in your .bashrc or .bash_profile export CDDIR="/home/flatcap/work" alias cdd="CDDIR=$(pwd)" Show Sample Output


    0
    cd() { if [ -n "$1" ]; then [ -f "$1" ] && set -- "${1%/*}"; else [ -n "$CDDIR" ] && set -- "$CDDIR"; fi; command cd "$@"; }
    flatcap · 2011-06-24 08:48:13 2
  • Use the -a flag to display all files, including hidden files. If you just want to display regular files, use a -1 (yes, that is the number one). Got this by RTFM and adding some sed magic. [bbbco@bbbco-dt ~]$ ls -a | sed "s#^#${PWD}/#" /home/bbbco/. /home/bbbco/.. /home/bbbco/2011-09-01-00-33-02.073-VirtualBox-2934.log /home/bbbco/2011-09-10-09-49-57.004-VirtualBox-2716.log /home/bbbco/.adobe /home/bbbco/.bash_history /home/bbbco/.bash_logout /home/bbbco/.bash_profile /home/bbbco/.bashrc ... [bbbco@bbbco-dt ~]$ ls -1 | sed "s#^#${PWD}/#" /home/bbbco/2011-09-01-00-33-02.073-VirtualBox-2934.log /home/bbbco/2011-09-10-09-49-57.004-VirtualBox-2716.log /home/bbbco/cookies.txt /home/bbbco/Desktop /home/bbbco/Documents /home/bbbco/Downloads ... Show Sample Output


    -9
    ls -a | sed "s#^#${PWD}/#"
    bbbco · 2011-12-16 22:19:06 2

  • 5
    find $HOME -type d -perm 777 -exec chmod 755 {} \; -print
    MeanderingCode · 2012-04-23 02:41:32 0
  • Change your Desktop background/wallpaper with feh lightweight command. fill background directory with appropriate content.


    0
    feh --bg-scale "`ls -d $HOME/backgrounds/* |sort -R |tail -1`"
    bertatum · 2013-03-16 16:05:48 0

  • 1
    shopt -s globstar ; rm -f **/cscope.out
    drizztbsd · 2010-07-09 12:17:34 0
  • get master info: head -n 40 /home/db_bak.sql |awk '$0~/MASTER_LOG_FILE/ slave server: change master ??. start slave


    0
    mysqldump -pyourpass --single-transaction --master-data=2 -q --flush-logs --databases db_for_doslave |tee /home/db_bak.sql |ssh mysqladmin@slave.db.com "mysql"
    dragonwei · 2014-08-11 05:57:21 0

What Others Think

Holy crap. Nice! I've read the bash manual more times that I care to admit, but I'd missed that one. However, I'll still find it easier to type cd than find the fiddly ~ button :-)
flatcap · 460 weeks and 3 days ago
"$OLDPWD" does the same as "cd -", using that. However, just "-" does not take you back to the previous directory as in "cd -". But it's still very useful.
Patola · 460 weeks and 2 days ago
just "cd" does the same. takes you home wherever you are.
Bender · 460 weeks and 2 days ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands



Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: