Linux: list contents of sub directories with given name?

8,152

Solution 1

Just to add to the collection, ls -R doesn't really produce the nice output so I use tree command instead

find "/Documents and settings" -name "My Documents" -exec tree -f -i --noreport {} \;

Solution 2

Combining the first two answers, use find and ls -R:

find "/Documents and settings" -name "My Documents" -exec ls -R {} \;

This will find all of the My Documents directories and list everything underneath them, with full pathnames. You need the quotes since the directory names have spaces in them.

Edit: An explination of how this works. It starts at /Documents and settings, looking for any file or directory that matches My Documents. For each one it finds, it substitutes the path for {} in the ls. The \; signifies the end of the command.

Solution 3

ls -R path_to_your_dir

or

ls -lR path_to_your_dir

for better view

However, best view is achieved with

find path_to_your_dir

NOTE: -R means recursive

Share:
8,152
Dane O'Connor
Author by

Dane O'Connor

Updated on September 17, 2022

Comments

  • Dane O'Connor
    Dane O'Connor over 1 year

    I'm using linux to analyze a windows directory structure. The structure is:

    /Documents and settings
      /username1
        /My Documents
        ...
      /username2
        /My Documents
        ...
      ...
    

    What command can I execute so that the contents (and sub folders) of all the "My Documents" directories are listed like:

    /Documents and Settings/username1/My Documents/filename
    /Documents and Settings/username1/My Documents/subdir/filename
    /Documents and Settings/username2/My Documents/filename
    

    Basically there are a ton of users but almost none have anything in their My Documents folder. I just want to find and show the contents of those user's that do have documents.

    EDIT: Each "username" directory contains many sub directories. I only want to list the tree below the My Documents folder but do so for all usernames at once.

  • Dane O'Connor
    Dane O'Connor over 14 years
    see my edit, I only need the tree below each my documents folder. Not the tree below Documents and Settings.
  • Dane O'Connor
    Dane O'Connor over 14 years
    see my edit, I only need the tree below each my documents folder. Not the tree below Documents and Settings.
  • Dane O'Connor
    Dane O'Connor over 14 years
    What does {} \; mean?
  • Dane O'Connor
    Dane O'Connor over 14 years
    that command is throwing: "missing argument to -exec"
  • KeithB
    KeithB over 14 years
    Make sure that you have the \; (backslash semicolon) on there.
  • Dane O'Connor
    Dane O'Connor over 14 years
    Ah, once you explained I noticed I didn't have a space between '{}' and '\;'. Perfect. I assume the '\;' is to prevent the shell from expanding ';'?
  • Dane O'Connor
    Dane O'Connor over 14 years
    Shoot, this is listing all the contents of Documents and Settings