Wednesday, September 5, 2007

Tree view of directories and file listings from command line

A detailed run down of one command mentioned from one linux tips link posted here, was the linux command tree.

Man says:
Tree is a recursive directory listing program that produces a depth indented listing of files. Color is supported ala dircolors if the LS_COLORS environment variable is set, output is to a tty, and the -C flag is used. With no arguments, tree lists the files in the current directory. When directory arguments are given, tree lists all the files and/or directories found in the given directories each in turn. Upon completion of listing all files/directories found, tree returns the total number of files and/or directories listed.


This is a handy little utility to display tree view of directories. An overview of how files and directories are expanded and traversed can be misleading and confusing when we are referring to thousand of files and folders. Tree comes as a handy tool to peruse those deep directory tree structures and files, especially when someone is trying to hide something from you.

With my fresh virtual Fedora 7 box, I have managed to count all directories and display them in tree view from it. By default installation, Fedora has more than 11,600 directory folders.

INSTALLATION
====================

In case, tree is not installed from your current Fedora box, here's a quick yum install howto

# yum -y install tree

TREE USAGE
====================

Here are more parameter sample using Tree
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To display files and directories in a tree view mode

# tree

To display directories only would be like

# tree -d
Sample output:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|-- [apache apache ] ./LICENSE.txt
|-- [apache apache ] ./_install.php
|-- [apache apache ] ./_upgrade.php
|-- [apache apache ] ./admin
| |-- [apache apache ] ./admin/index.php
| |-- [apache apache ] ./admin/js
| | |-- [apache apache ] ./admin/js/AmiJS.js
| | |-- [apache apache ] ./admin/js/ajax_editing.js
| | |-- [apache apache ] ./admin/js/greybox.js
| | |-- [apache apache ] ./admin/js/lightbox.js
| | |-- [apache apache ] ./admin/js/plogger.js
| | `-- [apache apache ] ./admin/js/prototype.js
| |-- [apache apache ] ./admin/plog-admin-functions.php
| |-- [apache apache ] ./admin/plog-admin.php
| |-- [apache apache ] ./admin/plog-feedback.php
| |-- [apache apache ] ./admin/plog-import.php
| |-- [apache apache ] ./admin/plog-manage.php
| |-- [apache apache ] ./admin/plog-options.php
| |-- [apache apache ] ./admin/plog-rpc.php
| |-- [apache apache ] ./admin/plog-themes.php
| |-- [apache apache ] ./admin/plog-thumb.php
| |-- [apache apache ] ./admin/plog-thumbpopup.php
| `-- [apache apache ] ./admin/plog-upload.php
|-- [apache apache ] ./captcha.ttf
|-- [apache apache ] ./css
| |-- [apache apache ] ./css/admin.css
| |-- [apache apache ] ./css/gallery.css
| |-- [apache apache ] ./css/greybox.css
| |-- [apache apache ] ./css/lightbox.css
| `-- [apache apache ] ./css/tabs.css
|-- [apache apache ] ./dynamics.js


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To view and display every file and folders including hidden ones in a tree mode display would be

# tree -a

To view files with UID, GUID, filesize, file location would be like so

# tree -ugfs

Sorted view of tree display is also possible by using tree parameters like

reversed sorting order
# tree -ugfsr

sorted by modification time
# tree -ugfst

To view and display all files and directories with UID and GID

# tree -gd

To use tree with enabled colorization would be

# tree -C

You can notice that using tree parameters, you can search files in a tree view mode of display using tree from command line terminal. Remember that these results can be combined further using other linux command.

Using linux command tree combined with grep would create another alternative way on grep'ing all files that has a modification time stamp of this month, September.

# tree -D | grep Sep

Alternatively, using tree to search or files and folder owned by a particular user or group ID like so

# tree -ugf | grep 'root\|user1'

Since tree traverses director folder, the depth of directory tree can also be specified like so

# tree -L 2

which traverses 2nd level down directories.

Another nice feature of tree linux command is that it can generate output in HTML file format with reference to base. This is done like so

# tree -H 'http://yourhost.domain.com' > index.html

Here's a sample of the generated tree view in web page file format:


Here's a sample screenshot of tree output from command line:


Enjoy.

0 comments:

Sign up for PayPal and start accepting credit card payments instantly.
ILoveTux - howtos and news | About | Contact | TOS | Policy