When trying to get to know a new system I really like the ‘tree‘ command. It gives me a fast and nice overview of the filesystem of the application. Sometimes I work on systems that does not have this great tool available and for those occasions I made this bash script:
#!/bin/bash olddir=$PWD; declare -i dirdepth=0; function listfiles { cd "$1"; for file in * do for ((i=0; $i < $dirdepth; i++)) do ##Tab between each level printf "\t"; done ## Print directories with brackets ([directory]) if [ -d "$file" ] then printf "\1[$file]\n"; else printf "$file\e[0m\n"; fi ##Work our way thru the system recursively if [ -d "$file" ] then dirdepth=$dirdepth+1; listfiles "$file"; cd ..; fi done ##Done with this directory - moving on to next file let dirdepth=$dirdepth-1; } listfiles "$1"; ##Go back to where we started cd $olddir; unset i dirdepth;
To use the script just do the following:
- Create a new file called 'tree.sh' (or whatever you like)
- Paste the code into the file and save
- Make the file executable
- Run the file: . tree.sh
This script is tested on OSX 10.6.8, Red Hat Enterprise Linux AS release 3 (Taroon Update 9)
Comments are closed.