Tree command list one level all files

How can I use the tree command to list current directory as a tree?

If I do

tree -L 1

It only lists the directories, how can I get it to show the files as well?


Solution 1:

For Windows XP or 7, the /F switch will also show filenames.

C:\>tree /?
Graphically displays the folder structure of a drive or path.

TREE [drive:][path] [/F] [/A]

   /F   Display the names of the files in each folder.
   /A   Use ASCII instead of extended characters.

However, I'm guessing you're on another OS since /L is not a valid switch on XP or 7.

On my Ubuntu VM (11.10), tree did not come pre-installed. sudo apt-get install tree fixed that quickly. Afterwards tree -L 1 worked just as you seem to want it to - it showed a tree of just the current directory, including files and directories. Adding the -a switch also included "hidden" files. It seems the default behavior of tree is to show both files and directories. This can be changed to directories only with the -d switch.

More details can be found in man tree or here: http://www.computerhope.com/unix/tree.htm

If you're having trouble, I suggest checking the ls of your pwd to make sure there actually are files in that directory. Also, check your file and folder permissions and view the man page for tree for more options.

Solution 2:

It lists both files and directories for me:

[ben@ben-x220 ~/tmp/test]$ tree --version
tree v1.5.3 (c) 1996 - 2009 by Steve Baker, Thomas Moore, Francesc Rocher, Kyosuke Tokoro 

[ben@ben-x220 ~/tmp/test]$ tree -L 1
.
├── dir1
├── file1
├── file2
└── file3

1 directory, 3 files

[ben@ben-x220 ~/tmp/test]$ tree
.
├── dir1
│   └── file4
├── file1
├── file2
└── file3

1 directory, 4 files