Получить список всех файлов в папке и подпапке в файле


28

Как получить список всех файлов в папке, включая все файлы во всех подпапках, и поместить выходные данные в файл?

Ответы:


39

Вы можете сделать это в командной строке, используя ключ -R (рекурсивно), а затем скопировать вывод в файл следующим образом:

ls -R > filename1

это создаст файл с именем filename1 в текущем каталоге, содержащий полный список каталогов текущего каталога и всех подкаталогов под ним.

Вы можете перечислить каталоги, отличные от текущего, указав полный путь, например:

ls -R /var > filename2

перечислит все в / в / var и поместит результаты в файл в текущем каталоге с именем filename2. Это работает с каталогами, принадлежащими другому пользователю, включая root, если у вас есть права на чтение для каталогов.

Вы также можете перечислить каталоги, к которым у вас нет доступа, например / root, с помощью команды sudo. например:

sudo ls -R /root > filename3

Перечислил бы все в / root, поместив результаты в файл с именем filename3 в текущем каталоге. Так как большинство систем Ubuntu не имеют ничего в этом каталоге, filename3 не будет ничего содержать, но будет работать, если будет.


Может быть, в ответ можно добавить указание человеку сначала ввести в каталог cd. Также это работает нормально, если я владею каталогом, но если пытаюсь в каталоге сказать, что он принадлежит root, это не так. Я получил обычное запрещенное разрешение и sudo, а затем ваша команда также дал разрешение отказано. Есть ли обходной путь без входа в систему как root?
Дэмиен

Ну, я сказал «текущий» каталог. Правильное использование компакт-диска может стать предметом другого вопроса, и я уверен, что так и было. Вы можете перечислить каталоги, принадлежащие пользователю root, если у вас есть доступ для чтения к ним. Каталоги, принадлежащие пользователю root, к которым пользователь имеет доступ для чтения, могут быть перечислены с помощью ls -R. Трудно представить, почему вы хотите перечислить каталоги, принадлежащие root, к которым у вас нет прав на чтение, но sudo действительно работает, если вы дадите полный путь. Я добавляю примеры для обоих из них, но исключаю использование CD.
fabricator4

8

дерево Установить дерево

Альтернативой рекурсивному lsинструменту является инструмент командной строки, treeкоторый имеет довольно много опций для настройки формата вывода на экран. Смотрите man-страницу для дерева для всех вариантов.


7

Просто используйте findкоманду с именем каталога. Например, чтобы увидеть файлы и все файлы в папках в вашем домашнем каталоге, используйте

find ~

Проверьте страницу руководства по поиску для findкомандыЗначок Manpage

Также проверьте страницу поиска информации GNU, используя info findкоманду в терминале.


Это самый мощный подход. findимеет много параметров для настройки выходного формата и выбора файла.
pauljohn32

Это лучший подход на мой взгляд. Просто и практично. Можно также сделать, $ find . > outputесли есть много каталогов.
Фелиппе

4

Также:

gvfs-tree /path/to/folder/

даст вам то же самое, что и дерево, используя другие символы для линий.

tree -a

отображать скрытые файлы тоже

tree -i

не отображать строки


1
  1. Перейдите в папку, из которой вы хотите получить список контента.
  2. Выберите файлы, которые вы хотите в своем списке ( Ctrl+, Aесли вы хотите всю папку).
  3. Скопируйте контент с помощью Ctrl+ C.
  4. Откройте gedit и вставьте содержимое, используя Ctrl+ V. Он будет вставлен в список, и вы сможете сохранить файл.

Этот метод не будет включать подпапку, хотя контент.


1

Вы можете также использовать аналог GUI для treeпредложения Такката, которое называется Baobab . Он используется для просмотра папок и подпапок, часто с целью анализа использования диска. Возможно, он уже установлен, если вы используете рабочий стол GNOME (его часто называют анализатором использования диска).

sudo apt-get install baobab

Вы можете выбрать папку, а также просмотреть все ее подпапки, а также получить размеры папок и их содержимое, как показано на скриншоте ниже. Вы просто нажимаете маленькую стрелку вниз, чтобы просмотреть подпапку в папке. Это очень полезно для получения быстрого представления о том, что у вас есть в ваших папках, и может создавать просматриваемые списки, но в настоящее время он не может экспортировать их в файл. Это было запрошено как функция, однако, на Launchpad . Вы даже можете использовать его для просмотра корневой файловой системы, если вы используете gksudo baobab.

(Вы также можете получить список файлов с их размерами, используя, ls -shR ~/myfolderа затем экспортировать их в файл.)

Введите описание изображения здесь


ОП хотел получить результаты в файле, предположительно, чтобы сделать что-то еще с ним. Хотя Баобаб - хороший инструмент, он, похоже, не отвечает требованиям оригинального вопроса ОП.
fabricator4

@ fabricator4 Я также добавил опцию ls, поскольку baobab в настоящее время не может вывести список.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.