Скопировать все имена файлов во всех каталогах текущей директории в один файл
Обучаюсь программировать в терминале linux, застрял на одной задаче. У нас имеется дерево каталогов с файлами, которые повторяются в произвольном порядке и количестве (см. скрин). Мне необходимо найти самый повторяемый файл по названию. Я решил реализовать поиск сначала через занесение все имен файлов всех каталогов в один файл, а там уже через grep, sort и uniq решать дальше. Но на моменте записи названий файлов в один файл, ls команда передает только файлы из текущей директории вместо файлов из внутренних каталогов выводит только их имена:
Как мне это исправить?
Отслеживать
задан 30 сен 2021 в 7:09
3 1 1 бронзовый знак
Воспользуйтесь командой find можно сделать форматированный вывод для сортировки и проверки на уникальность, что-то вроде такого find /path -type f -printf ‘%f;%p\n’ | sort -t’;’ -k1,1 — первым пунктом будет название файла, воторым путь и название файла
Можно ли скопировать название папок всех разом?
Дано: папка с папками . Требуется: скопировать только список названий всех папок и файлов для вставки в документ Word. Как скопировать разом весь список без копирования, отдельно, названия каждого файла? ОС Win7. Offise 2003.
Лучший ответ
Идешь в Проводник. Заходишь в нужную папку. Щелкаешь по адресной строке и копируешь адрес папки. Теперь запускаешь командную строку (пуск-cmd). Там вбиваешь
«cd адрес_папки» (без ковычек)
Затем когда будет выбрана нужная тебе папка вбиваешь
«dir»
Тебе выкинет название всех файлов и папок. Теперь щелкаешь правой кнопкой по окну ком строки и выбираешь из меню «отметить» или «пометить» (mark) и выбираешь нужные папки затем копировать и вставить в нужное приложение.
Вроде муторно, но на самом деле все очень быстро получается при этом не используя «левые» приложения.
Остальные ответы
cd <нужная папка>; dir .\ > text.txt в командной строке. и из файла это копируй в буфер обмена, и от туда в Word.нужная>
Сделал по другому открыл папку выделил все нужные мне папки после удерживая клавишу Shift нажал правой кнопкой мыши по папкам и выбрал из контекстного меню Копировать как путь после чего вставил в блокнот потом скопировал лишнее то есть путь который вставился в блокноте пример C:\Users\Admin\Documents после нажал правку нажал заменить а после вставил путь (C:\Users\Admin\Documents) который у меня повторяется в блокноте и нажал заменить все. все все имина папок будешь видеть а дальше проще можешь и блокнота скопировать в Word
Источник: Опыт
Шалом!, есть замечательная, крохотная программка — NikFileTree. Строит дерево каталогов и сохраняет его в текстовом файле.
Вид результата — дерево, плоский список или HTML-страница.
Показ только папок, папок и файлов, только файлов. Фильтр
на файлы по нескольким маскам сразу и возможность не выводить
пустые папки, что позволяет использовать программу для поиска
файлов и РАСПЕЧАТКИ результатов поиска. Можно ограничить
уровень погружения в дерево. Dos и Win кодировки. Для плоского
списка и HTML-страницы настраиваемый вывод размеров файлов,
времени создания и модификации, атрибутов. Сортировка по
названию, размеру, времени создания или модификации (но всегда
сначала файлы, потом папки). Много других настроек. Интеграция
c Проводником. Русский интерфейс.
Простой способ через TotalCommander далее ТС. Открываешь прогу ТС Выделяешь что нужно скопировать (имена) далее в TC жмем Инструменты/ Копировать имена в буфер или другую команду, которая по душе )))
Первые два ответа недостаточно развернуты, упущен важный нюанс, — сначала нужно вбить букву диска и двоеточие — например D: затем нажать enter и проделывать операции выше, а именно
Идешь в Проводник. Заходишь в нужную папку. Щелкаешь по адресной строке и копируешь адрес папки. Теперь запускаешь командную строку (пуск-cmd). Там вбиваешь
«cd адрес_папки» (без ковычек)
Затем когда будет выбрана нужная тебе папка вбиваешь
«dir»
Тебе выкинет название всех файлов и папок. Теперь щелкаешь правой кнопкой по окну ком строки и выбираешь из меню «отметить» или «пометить» (mark) и выбираешь нужные папки затем копировать и вставить в нужное приложение.
Вроде муторно, но на самом деле все очень быстро получается при этом не используя «левые» приложения.
Shift + Right Click
копировать как путь
и далее в блокноте замена/удаление всех путей до названий файлов.
После этого в ворде делаем замену «Заменить». в поле «Заменить»пишем начало пути. а поле «На» осталяем пустым. Происходит автоматическая замена. Это самый простой способ и быстрый.
Получение имен всех файлов в папке на Java
Ситуация весьма обычная: есть папка с файлами, и необходимо получить имена всех файлов из этой папки и сохранить их в список. Допустим, в папке есть файлы с именами «file1.txt», «file2.txt», «file3.txt». Цель — получить список с элементами [«file1», «file2», «file3»].
Одним из самых эффективных способов сделать это на языке Java является использование класса File из стандартной библиотеки.
import java.io.File; public class Main < public static void main(String[] args) < File folder = new File("/path/to/your/directory"); File[] listOfFiles = folder.listFiles(); ArrayList<String> fileNames = new ArrayList<>(); for (File file : listOfFiles) < if (file.isFile()) < fileNames.add(file.getName()); >> > >
В примере выше создается объект File , который представляет собой папку с файлами. Метод listFiles() этого объекта возвращает массив всех файлов в этой папке. Затем для каждого файла в этом массиве проверяется, является ли он файлом (а не папкой), и если да, то его имя добавляется в список.
Этот подход работает на всех операционных системах, включая Mac OS X, и не требует установки дополнительных библиотек, так как класс File является частью стандартной библиотеки Java.
Таким образом, с помощью нескольких строк кода на Java можно легко получить список имен всех файлов в заданной папке.
Как узнать имена всех файлов в папке? [закрыт]
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.
Закрыт 3 года назад .

К примеру у меня есть папка, в ней есть файлы(точное количество я не знаю файлов). Мне надо узнать название каждого файла с его расширением. Использовать какие-то библиотеки мне не надо. Пример:
Отслеживать
задан 31 мар 2020 в 17:05
29 1 1 бронзовый знак
Значит нужно открыть документацию и читать, читать, читать. Пока не узнаете, как это делать, гляньте например в сторону lfs .
31 мар 2020 в 17:19
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Как видите, в разделах про работу с файлами и средства ОС ничего про чтение директорий нету. Так что прямой ответ на ваш вопрос — нельзя, по крайне мере без костылей с popen .
На АнглоСО есть вопрос со множеством вариантов ответов, в том числе через popen и внешние библиотеки. Также, в книге Programming In Lua есть глава про создание итератора директорий через C API.
Отслеживать
ответ дан 31 мар 2020 в 18:04
16k 3 3 золотых знака 25 25 серебряных знаков 41 41 бронзовый знак
Как уже было сказано: дефолтными средствами lua это не сделать. Но есть очень хорошая (и распространенная) библиотека lfs . Например для того, чтобы получить все имена файлов в текущей директории можно сделать так:
local lfs = require("lfs") for entry in lfs.dir(".") do local mode = lfs.attributes("./" .. entry, "mode") if (mode == "file") then print(entry, mode) end end
