How do I get a list of all files in a folder, including all the files within all the subfolders and put the output in a file?

7 Answers 7


You can do this on command line, using the -R switch (recursive) and then piping the output to a file thus:

ls -R > filename1

this will make a file called filename1 in the current directory, containing a full directory listing of the current directory and all of the sub-directories under it.

You can list directories other than the current one by specifying the full path eg:

ls -R /var > filename2

will list everything in and under /var and put the results in a file in the current directory called filename2. This works on directories owned by another user including root as long as you have read access for the directories.

You can also list directories you don't have access to such as /root with the use of the sudo command. eg:

sudo ls -R /root > filename3

Would list everything in /root, putting the results in a file called filename3 in the current directory. Since most Ubuntu systems have nothing in this directory filename3 will not contain anything, but it would work if it did.

  • Maybe telling the person to cd into the directory first could be added to answer.Also this works fine if i own the directory but if trying in a directory say owned by root it didnt.I got the usual permission denied and sudo followed by your command also gave permission denied. IS there a work around without logging in as root?
    – damien
    Commented Sep 15, 2012 at 11:15
  • Well I did say "current" directory. The correct use of CD might the subject of another question, and I'm sure it has been. You can list directories owned by root as long as you have read access to them. Directories owned by root to which the user has read access can be listed with ls -R. It's hard to imagine why you'd want to list directories owned by root to which you don't have read access, but sudo does indeed work if you give the full path. I'm adding examples for both of these, but excluding the use of CD. Commented Sep 19, 2012 at 18:26

Just use the find command with the directory name. For example to see the files and all files within folders in your home directory, use

find ~

Check the find manual manpage for the find command Manpage icon

Also check find GNU info page by using info find command in a terminal.

  • This is the most powerful approach. find has many parameters to customize output format and file selection.
    – pauljohn32
    Commented Jul 28, 2018 at 2:47
  • That's the best approach in my opinion. Simple and practical. Could also do $ find . > output if there's many directories.
    – felippe
    Commented Jun 11, 2019 at 18:15

tree Install tree

An alternative to recursive ls is the command line tool tree that comes with quite a lot of options to customize the format of the output diplayed. See the manpage for tree for all options.



gvfs-tree /path/to/folder/

will give you the same as tree using other characters for the lines.

tree -a

to display hidden files too

tree -i

to not display lines

  1. Go to the folder you want to get a content list from.
  2. Select the files you want in your list (Ctrl + A if you want the entire folder).
  3. Copy the content with Ctrl + C.
  4. Open gedit and paste the content using Ctrl + V. It will be pasted as a list and you can then save the file.

This method will not include subfolder, content though.


You could also use the GUI counterpart to Takkat's tree suggestion which is Baobab. It is used to view folders and subfolders, often for the purpose of analysing disk usage. You may have it installed already if you are using a GNOME desktop (it is often called disk usage analyser).

sudo apt-get install baobab

You can select a folder and also view all its subfolders, while also getting the sizes of the folders and their contents as the screenshot below shows. You just click the small down arrow to view a subfolder within a folder. It is very useful for gaining a quick insight into what you've got in your folders and can produce viewable lists, but at the present moment it cannot export them to file. It has been requested as a feature, however, at Launchpad. You can even use it to view the root filesystem if you use gksudo baobab.

(You can also get a list of files with their sizes by using ls -shR ~/myfolder and then export that to file.)

Enter image description here

  • The OP wanted the results in a file, presumably to do something else with it. While Baobab is a good tool, it doesn't seem to meet the requirements of the OP's original question. Commented Sep 19, 2012 at 18:39
  • @fabricator4 I also added the ls option, as baobab cannot currently output a list.
    – user76204
    Commented Sep 19, 2012 at 18:41

List all files, first level folders, and their contents

ls * -r

List all first-level subdirectories and files

file */*

Save file list to text

file */* *>> ../files.txt
file */* -r *>> ../files-recursive.txt

Get everything

find . -type f

Save everything to file*

find . -type f > ../files-all.txt

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .