Get a list of all files in folder and sub-folder in a file
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:
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:
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?
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.
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
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.
That’s the best approach in my opinion. Simple and practical. Could also do $ find . > output if there’s many directories.
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.
will give you the same as tree using other characters for the lines.
to display hidden files too
- Go to the folder you want to get a content list from.
- Select the files you want in your list ( Ctrl + A if you want the entire folder).
- Copy the content with Ctrl + C .
- 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.)
ls command in Linux/Unix
ls is a Linux shell command that lists directory contents of files and directories.
ls syntax
$ ls [options] [file|dir]
ls command options
option | description |
---|---|
ls -a | list all files including hidden file starting with ‘.’ |
ls —color | colored list [=always/never/auto] |
ls -d | list directories — with ‘ */’ |
ls -F | add one char of */=>@| to enteries |
ls -i | list file’s inode index number |
ls -l | list with long format — show permissions |
ls -la | list long format including hidden files |
ls -lh | list long format with readable file size |
ls -ls | list with long format with file size |
ls -r | list in reverse order |
ls -R | list recursively directory tree |
ls -s | list file size |
ls -S | sort by file size |
ls -t | sort by time & date |
ls -X | sort by extension name |
ls command examples
You can press the tab button to auto complete the file or folder names.
List directory Documents/Books with relative path:
List directory /home/user/Documents/Books with absolute path.
List user’s home directory (e.g: /home/user):
List with long format and show hidden files:
Recursive directory tree list:
List only text files with wildcard:
ls redirection to output file:
List files and directories with full path:
ls code generator
Select ls options and press the Generate Code button:
Команда ls Linux
Если вы часто используете терминал, то довольно часто возникает необходимость посмотреть содержимое той или иной папки. Автодополнение спасает во многих случаях, но если вы не знаете что искать и не хотите использовать файловый менеджер, то быстро посмотреть что находится в папке может быть очень полезно. Другое применение команды ls — посмотреть разрешения для файлов и папок.
Установка правильных прав и владельца файла имеет очень важное значение для работы различного программного обеспечения, например, того же самого веб-сервера. В этой статье будет рассмотрена команда ls linux, основные ее опции и возможности, а также примеры применения.
Команда ls linux
Как обычно, в таких статьях сначала нам нужно понять синтаксис команды, чтобы вы знали как правильно ее использовать. На самом деле, синтаксис очень прост, вы набираете саму команду, а после нее путь к папке, содержимое которой хотите посмотреть. Если вы запустите команду без пути, то она выдаст содержимое текущего каталога:
$ ls опции /путь/к/папке
Опции команды указывают как именно и в каком виде нужно выводить информацию на экран, а путь, это та папка, которую нужно отобразить. Рассмотрим основные опции утилиты:
- -a — отображать все файлы, включая скрытые, это те, перед именем которых стоит точка;
- -A — не отображать ссылку на текущую папку и корневую папку . и ..;
- —author — выводить создателя файла в режиме подробного списка;
- -b — выводить Escape последовательности вместо непечатаемых символов;
- —block-size — выводить размер каталога или файла в определенной единице измерения, например, мегабайтах, гигабайтах или килобайтах;
- -B — не выводить резервные копии, их имена начинаются с ~;
- -c — сортировать файлы по времени модификации или создания, сначала будут выведены новые файлы;
- -C — выводить колонками;
- —color — включить цветной режим вывода, автоматически активирована во многих дистрибутивах;
- -d — выводить только директории, без их содержимого, полезно при рекурсивном выводе;
- -D — использовать режим вывода, совместимый с Emacs;
- -f — не сортировать;
- -F — показывать тип объекта, к каждому объекту будет добавлен один из специализированных символов */=>@|;
- —full-time — показывать подробную информацию, плюс вся информация о времени в формате ISO;
- -g — показывать подробную информацию, но кроме владельца файла;
- —group-directories-first — сначала отображать директории, а уже потом файлы;
- -G — не выводить имена групп;
- -h — выводить размеры папок в удобном для чтения формате;
- -H — открывать символические ссылки при рекурсивном использовании;
- —hide — не отображать файлы, которые начинаются с указанного символа;
- -i — отображать номер индекса inode, в которой хранится этот файл;
- -l — выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры;
- -L — для символических ссылок отображать информацию о файле, на который они ссылаются;
- -m — разделять элементы списка запятой;
- -n — выводить UID и GID вместо имени и группы пользователя;
- -N — выводить имена как есть, не обрабатывать контролирующие последовательности;
- -Q — брать имена папок и файлов в кавычки;
- -r — обратный порядок сортировки;
- -R — рекурсивно отображать содержимое поддиректорий;
- -s — выводить размер файла в блоках;
- -S — сортировать по размеру, сначала большие;
- -t — сортировать по времени последней модификации;
- -u — сортировать по времени последнего доступа;
- -U — не сортировать;
- -X — сортировать по алфавиту;
- -Z — отображать информацию о расширениях SELinux;
- -1 — отображать один файл на одну строку.
Это были все основные параметры команды ls, которые нам может когда-либо понадобиться использовать. Их очень много, но на деле будут нужны только некоторые из них, вы их быстро запомните, а все остальные сможете всегда найти в этой статье или на странице справки man ls. А теперь давайте рассмотрим несколько примеров использования команды ls linux.
Использование ls в Linux
Как вы уже поняли, ls — это сокращение от list, эта команда представляет из себя аналог команды dir для Linux. Самый простой способ использовать команду, запустить ее без параметров и посмотреть содержимое текущей папки:
Чтобы посмотреть список файлов в папке linux для точно заданной папки, вам нужно указать путь к ней. Например, смотрим содержимое корневой папки:
По умолчанию включен цветной вывод, поэтому вы видите столько различных цветов. Например, исполняемые файлы обозначаются салатовым, а ссылки голубым. Теперь посмотрим содержимое домашней папки снова, только на этот раз в виде списка с максимальным количеством информации:
Тут вывод уже разделен на отдельные колонки, в первой колонке указаны права доступа к файлу в формате владелец группа остальные. Следующая колонка — это тип файла или папки, дальше владелец и группа, затем размер, дата создания и последний параметр — имя. Если вы еще хотите знать кто создал файл, можно использовать опцию author:
Колонка создателя будет добавлена после группы. Дальше размер. Он выводится в байтах, килобайтах или еще в чем-то и нам не совсем понятно что там происходит, поэтому добавьте опцию -h чтобы выводить размер в более удобном виде:
Для папок размер выводится не сумой всех размеров всех файлов, а всего лишь то место, которое занимает сама папка, поэтому давайте посмотрим пример с файлами:
Если вы хотите видеть скрытые файлы, а в домашней папке их просто море, то используйте опцию -a:
Или смотрим скрытые файлы без ссылок на текущую и родительскую папку:
Теперь нас будет интересовать сортировка. Сначала отсортируем файлы по размеру:
Обратите внимание, что файлы расположены от большего к меньшему. Теперь мы можем включить обратный порядок:
С помощью опции -r мы вывели файлы в обратном порядке. Теперь отсортируем по алфавиту:
Или сортируем по времени последней модификации:
Обратите внимание на колонку времени, действительно, самые новые файлы будут вверху списка. Если вы хотите посмотреть какие метки SELinux присвоены файлу, необходимо использовать опцию -Z:
Но это возможно только в системах, где установлена надстройка SELinux. Если вы хотите рекурсивно вывести содержимое всех папок, используйте опцию -R:
Если же вам нужно список папок и файлов в директории через запятую, что можно использовать -m:
Выводы
Как видите, команда ls linux достаточно сложная, но вам будет достаточно только несколько основных ее функций. А в плане — «Просто посмотреть что делается в папке», эта команда очень проста. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.