Display directory hierarchy listing as a tree

ls -R | grep : | sed -e '\''s/:$//'\'' -e '\''s/[^-][^\/]*\//--/g'\'' -e '\''s/^/ /'\'' -e '\''s/-/|/'\''
Shows the current directory and those below it in a simple tree structure. Recommended use: alias lt='$command_above'

By: scw
2009-02-09 22:32:01

These Might Interest You

  • Creates a file with contents like `du -a`, only it is remote server filesystem hierarchy. Very usefull then for grep-ing without remote connection.

    lftp -u<<credentials>> <<server>> -e "du -a;exit" > server-listing.txt
    danbst · 2013-09-24 08:23:44 0
  • Provides a much cleaner, easier to read output than the closest alternative, ls -1R. This alternative makes it easier to differentiate directories from files: find . -printf '%y %p\n' | perl -ne 'if( m/(\w) (.*)\/(.*)/ ) { $t = $1; $p = $2; $f = $3; $t =~ s/[^d]/ /; $p =~ s/[^\/]/ /g; $p =~ s/\//|/g; print "$t $p/$f\n"; } elsif( m/(\w) (.*)/ ) { print "$1 $2\n"; } else { print "error interpreting: \"$_\"\n"; }' Show Sample Output

    find . -printf '%p\n' | perl -ne 'if( m/(.*)\/(.*)/ ) { $p = $1; $f = $2; $p =~ s/[^\/]/ /g; $p =~ s/\//|/g; print "$p/$f\n"; } elsif( m/(.*)/ ) { print "$1\n"; } else { print "error interpreting: \"$_\"\n"; }'
    cbetti · 2012-04-24 19:51:00 0
  • Usage : tt [OCCURRENCE] tt will display a tree from your actual path tt .svn will display only line containing .svn Show Sample Output

    tt(){tree -pFCfa . | grep "$1" | less -RgIKNs -P "H >>> "}
    strzel_a · 2010-10-12 10:53:33 2
  • Let's say you have a set of files in tree A that you want duplicated to tree B while preserving their directory structure / hierarchy. (For example, you might want to copy your 'profile' model/views/controller from one Rails application to another.) The "pax" command will copy all matching files to the destination while creating any necessary directories.

    cd ~/ruby/project_a ; find . -name "*profile*" -exec pax -rw {} ~/ruby/project_b/ \;
    cbpowell · 2011-11-10 21:18:15 0

What Others Think

i get an error: > bash: unexpected EOF while looking for matching `'' bash: syntax error: unexpected end of file
tanguyr · 484 weeks and 5 days ago
that's cause it's rediculously (and incorrectly) overquoted ls -R|grep :|sed -e 's/:$//;s/[^-][^\/]*\//--/g;s/^/ /;s/-/|/' alias lt="ls -R|grep :|sed -e 's/:$//;s/[^-][^\/]*\//--/g;s/^/ /;s/-/|/'"
adavies42 · 484 weeks and 5 days ago
Great regular expresion, but in my debian "tree" command is more simple :) tree -d
robert · 484 weeks and 5 days ago
Yes, robert is right. `tree` is the way to go for this.
isaacs · 478 weeks and 2 days ago
Yes, robert is right. `tree` is the way to go for this.
isaacs · 478 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: