2

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).

4

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
  • 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
2

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
...

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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