Вопрос или проблема
Как получить список всех файлов в папке, включая все файлы во всех подкаталогах, и записать вывод в файл?
Вы можете сделать это с помощью командной строки, используя параметр -R (рекурсивно), а затем перенаправить вывод в файл следующим образом:
ls -R > filename1
Это создаст файл с именем filename1 в текущем каталоге, содержащий полный список каталогов текущего каталога и всех его подкаталогов.
Вы также можете перечислять каталоги, отличные от текущего, указав полный путь, например:
ls -R /var > filename2
Это отобразит все содержимое в /var и подкаталогах и запишет результаты в файл в текущем каталоге с именем filename2. Это работает с каталогами, принадлежащими другим пользователям, включая root, при условии, что у вас есть доступ на чтение для этих каталогов.
Вы также можете перечислять каталоги, доступ к которым у вас нет, например /root, с помощью команды sudo. Например:
sudo ls -R /root > filename3
Это перечислит все содержимое в /root, сохранив результаты в файл с именем filename3 в текущем каталоге. Поскольку на большинстве систем Ubuntu в этом каталоге ничего нет, filename3 не будет содержать ничего, но это будет работать, если там что-то будет.
Просто используйте команду find
с именем каталога. Например, чтобы просмотреть файлы и все файлы в папках вашего домашнего каталога, используйте
find ~
Проверьте справку find на man-странице команды find
Также проверьте информацию о find на странице GNU, используя команду info find
в терминале.
tree
Альтернативой рекурсивному ls
является инструмент командной строки tree
, который имеет множество опций для настройки формата вывода. Смотрите man-страницу для tree для всех опций.
Также:
gvfs-tree /path/to/folder/
даст вам то же самое, что и tree, используя другие символы для линий.
tree -a
чтобы отобразить также скрытые файлы
tree -i
чтобы не отображать линии
- Перейдите в папку, для которой вы хотите получить список содержимого.
- Выберите файлы, которые вы хотите в своем списке (Ctrl + A, если хотите выбрать всю папку).
- Скопируйте содержимое с помощью Ctrl + C.
- Откройте gedit и вставьте содержимое с помощью Ctrl + V. Оно будет вставлено в виде списка, и вы сможете сохранить файл.
Этот способ не будет включать содержимое подкаталогов.
Вы также можете использовать графический аналог предложения tree
от Takkat, который называется Baobab. Он используется для просмотра папок и подкаталогов, часто для анализа использования дискового пространства. Он может быть уже установлен, если вы используете рабочий стол GNOME (обычно он называется анализатором использования диска).
sudo apt-get install baobab
Вы можете выбрать папку и также просмотреть все ее подкаталоги, получая размеры папок и их содержимого, как показано на скриншоте ниже. Просто нажмите на маленькую стрелку вниз, чтобы просмотреть подкаталог в папке. Это очень удобно для быстрого понимания того, что у вас есть в папках, и может создавать видимые списки, но в данный момент он не может экспортировать их в файл. Тем не менее, это было запрошено как функция, на Launchpad. Вы можете даже использовать его для просмотра файловой системы root, если используете gksudo baobab
.
(Вы также можете получить список файлов с их размерами, используя ls -shR ~/myfolder
, а затем экспортировать это в файл.)
Список всех файлов, папок первого уровня и их содержимого
ls * -r
Список всех подкаталогов первого уровня и файлов
file */*
Сохранить список файлов в текстовый файл
file */* *>> ../files.txt file */* -r *>> ../files-recursive.txt
Получить все
find . -type f
Сохранить все в файл*
find . -type f > ../files-all.txt
Для вывода со всеми данными о файлах / папках вы можете использовать ls -laR
Ответ или решение
Получение списка всех файлов в папке и подкаталогах и запись его в файл
Для получения списка всех файлов в указанной папке и её подкаталогах с последующей записью его в файл, можно использовать различные команды и инструменты, доступные в операционных системах на базе Unix/Linux. Ниже представлен подробный обзор таких методов, которые помогут вам достичь этой задачи на различных уровнях сложности и с учетом различных потребностей.
Использование команды ls
Команда ls
позволяет вывести список файлов и папок, а опция -R
(рекурсивно) будет включать подкаталоги.
-
Для текущей директории:
ls -R > filename1.txt
Эта команда создаст файл
filename1.txt
в текущей директории, который будет содержать список всех файлов и подкаталогов. -
Для указанной директории:
ls -R /путь/к/директории > filename2.txt
В этом случае команда перечисляет всё содержимое директории
/путь/к/директории
и сохраняет вывод вfilename2.txt
. -
Использование
sudo
для доступа к защищённым директориям:Если вам необходимо получить доступ к защищенной директории, такой как
/root
, используйте команду сsudo
:sudo ls -R /root > filename3.txt
Обратите внимание, что этот файл может быть пустым, если в директории нет файлов.
Использование команды find
Команда find
— это мощный инструмент для поиска файлов и директорий, который также можно использовать для вывода списка всех файлов.
-
Получение списка всех файлов:
find /путь/к/директории > filename.txt
Эта команда рекурсивно находит все файлы в указанной директории и всех её подкаталогах, сохраняя вывод в файле
filename.txt
.
Использование команды tree
tree
— это удобный инструмент, который отображает файлы и папки в виде дерева.
-
Установка tree:
sudo apt-get install tree
-
Запуск команды tree:
tree -a /путь/к/директории > treestructure.txt
Опция
-a
позволяет показать скрытые файлы, а результат будет записан вtreestructure.txt
.
Альтернативные методы
-
Использование графического интерфейса:
Если вы предпочитаете работать в графическом интерфейсе, вы можете воспользоваться инструментами, такими какBaobab
(анализатор дискового пространства). Он позволяет просматривать файлы и подпапки, однако не предоставляет функции экспорта списка файлов в файл. -
Использование
ls
для более детального вывода:Чтобы получить информацию о файлах (размер, права доступа и т.д.):
ls -laR /путь/к/директории > detailed_info.txt
Заключение
В зависимости от ваших потребностей, представленные методы позволяют гибко и эффективно получать список всех файлов в указанной директории и её подкаталогах. Вы можете выбрать наиболее подходящий вам способ работы, будь то через командный интерфейс или графический инструмент, в зависимости от ваших предпочтений и уровня доступа к файловой системе.