Скопировать имена всех файлов в папке в текстовый файл

Spacer
Поделитесь этим сайтом с друзьями!

Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь - поддержите материально автора. Это легко сделать закинув денежек на Яндекс Кошелек № 410011416229354. Или на телефон +7 918-16-26-331.

Или другими способами (с карты, с телефона)

Даже небольшая сумма может помочь написанию новых статей :)

Или поделитесь ссылкой на эту статью со своими друзьями.

Опубликовано: Последнее обновление этой статьи:

В этой инструкция, как скопировать, в текстовый файл, имена всех файлов в папке.

В общем ничего сложного в этом и сделать это можно штатными средствами, которые есть в каждой операционной системе "из коробки". Далее, в этой статье, будут инструкции для двух самых распространенных ОС.

Имена всех файлов в папке в текстовый файл в ОС Windows

В ОС Windows нужно открыть "Командную строку" (файл cmd.exe). И там выполнить команду:

dir /b /a-d > filename.txt

Эта команда расшифровывается так:

  • dir - команда, которая показывает содержимое текущего или указанного каталога.
  • /b - опция команды, которая показывает, что нужно выводить только имена (без доп. информации).
  • /a-d - опция команды, которая показывает, что нужно выводить только файлы, без папок.
  • > filename.txt - перенаправление вывода команды в текстовый файл вместо экрана.

Вывод такой команды, в текстовом файле будет выглядеть вот так:

desktop.ini
dvazhdy.rozhdennyj.avi
filename.txt
logo-128.png
logo.jpg
logo.png
ls.txt  

Более сложный вариант команды:

dir D:\download /b /a-d > d:\temp\filename.txt

В этом варианте явным образом указаны пути, папки и файла.

Если нужно выбрать файлы из вложенных папок, тогда в команду нужно добавить опцию /s:

dir /b /a-d /s > filename.txt

Если нужно добавлять имена файлов к существующему содержимому файла (без перезаписи файла), тогда условие перенаправления нужно удвоить:

>> filename.txt

то есть:

dir /b /a-d >> filename.txt

 

Имена всех файлов в папке в текстовый файл в ОС Linux

В ОС Linux есть аналогичная команда, которая тоже выполняется в терминале (консоли):

ls -p | grep -v '/$' > filename.txt

Эта команда расшифровывается так:

  • ls - команда, которая показывает содержимое текущего или указанного каталога. Но, в отличии от команды Windows, в этой команде нет опции, которая "отсекает" имена папок. Поэтому нужно использовать обходной путь, для получения только имен файлов.
  • -p - опция, которая добавляет слэш к именам папок. Это нужно для того, чтобы "отсечь" имена папок.
  • | - перенаправление вывода команды ls в команду grep.
  • grep - команда, которая обрабатывает входной поток и выбирает из него элементы, по заданным условиям.
  • -v '/$' - условие для удаления имен папок.
  • > filename.txt - перенаправление вывода команды в текстовый файл вместо экрана.

Таким образом получается следующее:

Команда ls выдает список файлов и папок и перенаправляет этот список в команду grep. Команда grep, удаляет из этого списка имена папок.

Если нужно выбрать файлы из вложенных папок, тогда в команду ls нужно добавить опцию /R:

ls -p -R | grep -v -e '/$' -e '^./' -e '^.:' > filename.txt

Дополнительные OR (ИЛИ) условия команды grep нужны для удаления имен вложенных папок.

Поделитесь этим сайтом с друзьями!

Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь - поддержите материально автора. Это легко сделать закинув денежек на Яндекс Кошелек № 410011416229354. Или на телефон +7 918-16-26-331.

Или другими способами (с карты, с телефона)

Даже небольшая сумма может помочь написанию новых статей :)

Или поделитесь ссылкой на эту статью со своими друзьями.

 

  Copyright digital.workshop 1999 - 2019.  
Это произведение доступно по лицензии Creative Commons Attribution-NoDerivs 3.0.
Developed by digital.workshop