I would like to list all the directories and sub directories in and below the current path. Since I only wanted to display directories I came up with the follwing command:

find -type d -exec ls -d1 {} \; | cut -c 3-

This prints out for example

webphone
music
finance
finance/banking
finance/realestate
finance/trading
finance/other
finance/moneylending
finance/insurance
webradio
webtv

The problem I have right now is, that the directory finance is listed. finance contains no files yust the sub directories you see above. What I want to achieve is the following output:

webphone
music
finance/banking
finance/realestate
finance/trading
finance/other
finance/moneylending
finance/insurance
webradio
webtv

In this list the directory finance is not listed. Therefore I need your adive of how to filter directories which contain no files (only subdirectories).

Thanks in advance

ftiaronsem

link|improve this question

feedback

2 Answers

up vote 3 down vote accepted

Here's one way: list all regular files, strip away the file basenames, and remove duplicates.

find . -type f | sed 's!/[^/]*$!!' | sort -u

If you want to strip the leading ./:

find . -type f | sed -e 's!/[^/]*$!!' -e 's!^\./!!' | sort -u
link|improve this answer
+1 Neat solution – Nifle Oct 16 '10 at 10:25
Thank you so much! Your reg-exp search was nearly perfect. I just had to strip the "./" and to remove the first emtpy line. The command I run now is: find . -type f | sed 's!/[^/]*$!!' | sort -u | sed '1d' | cut -c 3- – ftiaronsem Oct 16 '10 at 10:55
@ftiaronsem: the empty line corresponds to the current directory. See my edit. – Gilles Oct 16 '10 at 11:19
feedback

I consider installing tree:

  • sudo apt-get install tree

and then run

  • tree -d /path/to/start/dir

to display directories only.

Example:

root@X100e:~# tree -d /var/cache/
/var/cache/
├── apache2
│   └── mod_disk_cache
├── apt
│   └── archives
│       └── partial
├── binfmts
├── cups
│   └── rss
├── debconf
├── dictionaries-common
├── flashplugin-installer
...
link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.