One Line Command – Print Directory Tree

While this blog is new, I want to ensure I keep content going lest it goes abandoned and six months from now I wonder what happened. Most of my original inspiration on putting content here is based on useful work I do. Not having anything interesting to share from current work, I’ll share a segment of things I find interesting and useful from time to time.

So this post is kicking off my category of “One Line Commands”. Over the years I have found myself finding, grepping, cutting and PERLing through directories and files to find some useful information to solve some issue. This first example is a PERL script that recurses through directory tree printing and adds indent based on the current level. Output can be sent to a file and imported into Excel. It is setup to ignore subversion files/directories because at the time I wanted to get a full directory tree from a checked out repository.

perl -e 'use File::Find; sub pl {my ($sc) = @_; print "\t" while ($sc--
> 0); } sub wanted { $f=$_; $fn=$File::Find::name; return if $fn =~ /.svn/; my
$sc=($fn =~tr/\///); if (-d $fn) {pl($sc); print "$f/\n";} else {pl($sc); print
 "$f"; pl(20-$sc); print "$fn\n";}};  find(\&wanted, ("."));'

Copy and pastes into one command line entry.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>