Как быстро достать все файлы из кучи папок?
Есть куча папок. В них ещё куча папок. В них файлы, c ещё кучей папок. Одним словом — срач. Как мне все файлы из всех этих папок достать, и переместить в одну? Я сперва подумал, что надо просто в поиск вбить точку (ну типа у каждого же файла есть расширение, соответственно и точка в названии), и всё переместить, но оказалось, что так не все файлы нашлись. То есть, видимо, в этой помойке есть и файлы вообще без расширений, и они мне тоже нужны. В общем, кто знает метод — помогите пожалуйста)
Total Commander → Ctrl+B (показать файлы без каталогов) → Ctrl+A (выделить всё) → Ctrl+X (вырезать) → Ctrl+V (вставить)
Вот это, только советую не вырезать, а скопировать. А то мало ли что. И при копировании не забыть нажать options > overwrite options > 5. auto rename copied. Но я бы сильно не советовал делать это ибо будет бардак.
Еще не мешает надеть перчаточки, масочку и сделать резервные копии всех жестких дисков, обзвонить родственников на случай сердечного приступа.
Мы не знаем что у него за файлы и зачем ему это понадобилось. Если у него есть нужные файлы без расширения, вполне возможно что у него и накопитель поломан.
сделать резервные копии всех жестких дисков,
Верно, нужно иметь резервные копии всех важных данных
обзвонить родственников на случай сердечного приступа.
Тоже верно, ряд родственники должны знать что делать в случае сердечного приступа. Например покормить твоего кота.
Как раз хотел написать.
так ты получаешь все файлы и папки. проблема в том, что в этом сраче могут быть дубликаты по названию и просто сделать
Эти красные глаза я узнаю из тысячи
Почему >? Это же перенаправление потока, которое тупо в консоль или из консоли. Раньше нужно было | использовать. И вообще работать не будет. Минимум надо %1 в move и оформить батником. Плюс в конце дир тебе выдаст сводку общему объему, там был еще параметр чтобы чистый список выдавал файла. EDIT: Во, dir /s /b дает нормальный список файлов с полными путями.
Ещё исключить папки и передать вывод в xargs. то есть, for: for /F «delims==» %%F in (‘dir «.\in\» /A-D /B /S’) do xcopy «%%F» «.\out\» Или лучше без dir: for /R «.\in\» %%F in (*) do xcopy «%%F» «.\out\» Но это лишь разминка для ума (получается неудобно и ещё нужна обработка дубликатов).
он же написал, что есть файлы и без расширений, поэтому *.* не подойдет
а вообще погугли за *.bat файлы — у тебя именно тот момент, когда тебе пригодится работа в консоли, хе-хе.
Именно тот момент, когда не пригодится =\ Ты предложил пока самое сложное решение и написал, что оно не работает.
copy и move молча переписывают дубликаты, xcopy и robocopy не дают их переименовать, xxсopy умеет всё необходимое (переименование, слияние подпапок, проверка, логирование), но его нужно скачивать, xxxcopy (.com) давно закрылся.
В консоль стоило бы лезть только для экзотических случаев — допустим, исходную папку слишком опасно трогать и поэтому делаем хардлинки вместо перемещения или заменяем исходный файл симлинком или бэкапим иерархию или.
Программа DirLister для получения списка файлов
Вы можете создать список файлов расположенных в папке, при помощи бесплатной программы DirLister. Эта крошечная программа не требует установки на компьютер. После загрузки программы на свой компьютер, распакуйте архив с программой.
DirLister скачать
Для запуска программы, откройте папку с программой, а потом кликните по приложению DirLister.
В окне программы DirLister, в разделе «Directory To Scan», при помощи кнопки «Open», вам нужно будет выбрать папку для сканирования.
В разделе «Output File», при помощи кнопки «Save As…», вам необходимо будет выбрать место для сохранения списка файлов.
Вы можете уточнить критерии поиска файлов по маске «*.*», выбрав нужное имя или тип файла («TXT», «Excel», «HTML» и т. д.). После выбора необходимых настроек, нажмите на кнопку «Make List».
После завершения сканирования в левом нижнем углу программы будет выведена информация об успешном завершении создания списка файлов: «All file processed correctly».
Программа DirLister выводит не только список файлов в данной папке, но и дает полную информацию о вложенных в эту папку файлах и папках, в том числе о размере файлов.
Как в Windows 10 удалить файлы, но оставить структуру папок
Создавать папки нетрудно, однако, если у вас имеется сложная структура каталогов, из которой нужно удалить все файлы, вряд ли вы захотите создавать ее заново, удалив ее перед этим вместе с файлами. Впрочем, удалить все файлы, сохранив при этом структуру директорий очень даже просто, причем сделать это можно как минимум тремя путями. Первый способ предполагает копирование имеющейся структуры с игнорированием ее содержимого.
Копирование структуры
Воспользуемся для этих целей встроенной консольной утилитой XCOPY. Предположим, что у нас есть папка Data с вложенными каталогами, в которых содержаться некие файлы, которые нужно удалить.
Создав пустую папку Data в другом месте, открываем PowerShell или командную строку и выполняем команду XCOPY «путь-к-папке-с-файлами «путь-к-пустой-папке» /T /E .
В результате в пустой каталог Data будет скопировано дерево папок первой папки Data , но уже без файлов. Естественно, первую папку можно удалить.
С помощью Total Commander
Если у вас есть файловый менеджер Total Commander, используем встроенную функцию вывода содержимого без каталогов.
Зайдите в программе в каталог с содержимым и нажмите Ctrl + B .
В результате все содержащиеся в нём файлы, в том числе те, которые находятся во вложенных каталогах, будут выведены в панели файлового менеджера. Готово, теперь вам останется их только выделить и удалить.
Папки при этом останутся на месте.
Рекурсивным методом в PowerShell
Почистить папки от файлов можно и с помощью PowerShell .
Для этого в запущенной консоли выполняем команду:
Get-ChildItem -Path «путь-к-папке» -Include *.* -File -Recurse | foreach
Этой командой мы рекурсивно проходим по каталогам, получаем список файлов и удаляем их. Удалены, однако, будут только те файлы, которые имеют расширение или точку в имени.
Приведенная здесь команда тем хороша, что позволяет удалять файлы по маске. Так, добавив к точке расширение TXT (*.txt*) , вы удалите только текстовые файлы с данным расширением. Но есть у нее и свой недостаток, — все файлы удаляются мимо Корзины, поэтому перед очисткой каталогов всё же рекомендуется создавать их резервные копии.
Как скопировать сразу все файлы из множества подпапок
Всем доброго времени суток и всяческих прочих разностей.
Небольшая заметка в блог, которая может немного упростить кому-либо жизнь в определенной ситуации, а точнее говоря спасти бесценное времени. Речь идет о ситуации, когда у Вас есть огромное количество подпапок в каждой из которых лежат файлы и все их надо скопировать в одну.
Как Вы понимаете, мышкой открывать каждую папку, чтобы потом тыркнуть скопировать (ну или перетащить), чтобы потом тыркнуть вставить в нужную, и так по кругу, достаточно, мягко говоря, накладно (особенно, если разных подпапок, скажем тысяча и более). А уж если в папках есть подпапки, а в них еще.. Ну Вы поняли.
Рассказываю как сделать это быстро и просто.
Чтобы Вы поняли о чем идет речь, есть вот такая вот каша из более чем тысячи папок в которых, собственно, тысячи файлов:
Нужно получить на выходе такую вот кашу из всех файлов, но в одной папке:
Можно сделать это консолью, но можно и поступить попроще. Скачиваем Total Commander , запускаем, открываем папку в которой лежат подпапки с папками, т.е верхнюю в структуре:
Нажимаем на клавиатуре Ctrl+B , чтобы отобразить все файлы во всех папках и подпапках, одним списком, т.е без папок, т.е содержимое:
Используя, скажем, мышь или клавишу F5 (копирование) или клавишу F6 (перемещение) копируем в нужную нам папку.
На сим, собственно, всё, такая вот кратенькая заметка. Авось кому-нибудь пригодится
Белов Андрей (Sonikelf) alt=»Sonikelf» /> alt=»Sonikelf» />Заметки Сис.Админа Космодамианская наб., 32-34 Россия, Москва (916) 174-8226
Как отобразить скрытые файлы в Total Commander
Иногда необходимо показать скрытые или системные файлы, для выполнения определенных действий. Если нужно поработать со скрытыми файлами, упорядочить их, либо переместить, нужно воспользоваться следующими рекомендациями:
- Зайдите на панели инструментов во вкладку «Конфигурация».
- Выберите пункт «Настройка» и укажите «Содержимое панелей».
- Выберите из списка «Содержимое панелей» и поставьте флажок напротив «Показывать скрытые/системные файлы».
Обратите внимание, если вы не знаете, для чего нужно отображать скрытые файлы, не меняйте настройки, так как случайное удаление или изменение системных файлов может вызвать неполадки в системе. Источник
Источник
Команда cp: правильное копирование папок с файлами в *nix
В этой статье будут раскрыты некоторые неочевидные вещи связанные с использованием wildcards при копировании, неоднозначное поведение команды cp при копировании, а также способы позволяющие корректно копировать огромное количество файлов без пропусков и вылетов.
Допустим нам нужно скопировать всё из папки /source в папку /target.
Первое, что приходит на ум это:
Сразу исправим эту команду на:
Ключ -a добавит копирование всех аттрибутов, прав и добавит рекурсию. Когда не требуется точное воспроизведение прав достаточно ключа -r .
После копирования мы обнаружим, что скопировались не все файлы — были проигнорированы файлы начинающиеся с точки типа:
.profile .local .mc и тому подобные.
Почему же так произошло?
Потому что wildcards обрабатывает shell ( bash в типовом случае). По умолчанию bash проигнорирует все файлы начинающиеся с точек, так как трактует их как скрытые. Чтобы избежать такого поведения нам придётся изменить поведение bash с помощью команды:
Чтобы это изменение поведения сохранилось после перезагрузки, можно сделать файл wildcard.sh c этой командой в папке /etc/profile.d (возможно в вашем дистрибутиве иная папка).
А если в директории-источнике нет файлов, то shell не сможет ничего подставить вместо звёздочки, и также копирование завершится с ошибкой. Против подобной ситуации есть опции failglob и nullglob . Нам потребуется выставить failglob , которая не даст команде выполниться. nullglob не подойдёт, так как она строку с wildcards не нашедшими совпадения преобразует в пустую строку (нулевой длины), что для cp вызовет ошибку.
Однако, если в папке тысячи файлов и больше, то от подхода с использованием wildcards стоит отказаться вовсе. Дело в том, что bash разворачивает wildcards в очень длинную командную строку наподобие:
На длину командной строки есть ограничение, которое мы можем узнать используя команду:
Получим максимальную длину командной строки в байтах:
Получим что-то типа:
Итак, давайте будем обходиться вовсе без wildcards.
Давайте просто напишем
И тут мы столкнёмся с неоднозначностью поведения cp . Если папки /target не существует, то мы получим то, что нам нужно.
Однако, если папка target существует, то файлы будут скопированы в папку /target/source.
Не всегда мы можем удалить заранее папку /target, так как в ней могут быть нужные нам файлы и наша цель, допустим, дополнить файлы в /target файлами из /source.
Если бы папки источника и приёмника назывались одинаково, например, мы копировали бы из /source в /home/source, то можно было бы использовать команду:
И после копирования файлы в /home/source оказались бы дополненными файлами из /source.
Чтобы обойти это вредное ограничение мы используем неочевидное решение:
Те кто хорошо знаком с DOS и Linux уже всё поняли: внутри каждой папки есть 2 невидимые папки «.» и «..», являющиеся псевдопапками-ссылками на текущую и вышестоящие директории.
- При копировании cp проверяет существование и пытается создать /target/.
- Такая директория существует и это есть /target
- Файлы из /source скопированы в /target корректно.
Поведение этой команды однозначно. Всё отработает без ошибок вне зависимости от того миллион у вас файлов или их нет вовсе.
Выводы
Если нужно скопировать все файлы из одной папки в другую, не используем wildcards, вместо них лучше использовать cp в сочетании с точкой в конце папки-источника. Это скопирует все файлы, включая скрытые и не завалится при миллионах файлов или полном отсутствии файлов.
Послесловие
vmspike предложил аналогичный по результату вариант команды:
ВНИМАНИЕ: регистр буквы T имеет значение. Если перепутать, то получите полную белиберду: направление копирования поменяется
Благодарности:
Как удалить дубликаты файлов в Total Commander
Для того чтобы удалить дубликаты файлов в TC, нужно найти их через файловый менеджер, с использованием шаблонов и масок. Поиск дублирующих файлов осуществляется через сочетание клавиш Alt+F7 или инструментальную панель программы. Чтобы вызвать окно поиска через меню, откройте пункт «Команды» в меню, и нажмите «Поиск файлов».
Перед вами откроется окно с параметрами поиска, во вкладке «Дополнительно» можно указать критерии поиска дубликатов, например, по имени или по содержимому. В главном окне указывается расширение требуемых файлов, место поиска и названия, если есть. Результаты сканирования будут отображены в окне каталогов, однако удаление нужно будет произвести вручную.
Выделение файлов
Чтобы выполнить ту или иную манипуляцию с файлами, их, прежде всего, необходимо выделить. Первое, что надо сделать — перейти в директорию с требуемыми файлами и выделить объекты, нажав по ним один раз правой кнопкой мыши. Объекты выделяются шрифтом красного цвета.
Есть люди, которым правая клавиша мыши неудобна. Чтобы заменить ее левой, в настройках следует перейти в «Основные операции» и выделить галочкой «Левой кнопкой, как в Windows».
Над рабочей областью программы есть меню «Выделение», там можно обозначить все файлы в каталоге или определенную группу. Сделать это легко, используя горячие клавиши. Выделение группы — комбинация «Num+», выделение всех файлов — «Ctrl+Num+».
Как найти файлы
Чтобы открыть окно поиска, следует нажать комбинацию «Alt+F7» или найти эту функцию в главном меню, выбрав пункт «Команды».
Здесь пользователю доступно большое множество инструментов. Поиск файлов можно осуществлять только в определенных папках или дисках, по дате создания или по временному промежутку их создания либо по размеру. Кроме того, программа осуществляет поиск файлов, в которых присутствует искомое слово или фраза.
Еще одна полезная функция — поиск дубликатов по разным параметрам. Все настройки поиска легко сохранять в шаблоны, чтобы в следующий раз не вводить заново требуемые параметры.
Источник
О программе
TeraCopy – условно-бесплатная программа, позволяющая более оперативно проводить операции копирования и перемещения данных в среде Windows за счёт многопоточного алгоритма проведения этих операций. К вопросу эффективности такого алгоритма мы ещё вернёмся.
В числе возможностей TeraCopy:
• Проверка хеш-суммы;• Пропуск проблемных файлов при копировании/перемещении данных;• Ожидание переподключения сетевого ресурса или съёмного устройства, если таковые являются одним из мест проведения операции;• Защита данных при прерывании копирования/перемещения;• Настраиваемый удобный интерфейс с ведением истории операций для оперативного указания в будущем источников и мест назначения копирования/перемещения данных;• Возможность задания единого общего правила при совпадении имён файлов;• Настройка звукового оповещения по завершении операций;• Интеграция программы в проводник Windows, Directory Opus и Total Commander.
TeraCopy изначально являет собой небольшое окошко по типу статус-бара.
В это окошко необходимо перетянуть из проводника или файлового менеджера данные, нажать кнопку либо «Копировать», либо «Переместить».
И указать путь назначения.
Далее же можем отслеживать прогресс операции в статус-баре.
И таких операций копирования/перемещения данных можно запустить несколько, каждый раз добавляя в интерфейсе программы новую форму со статус-баром.
Получаем список файлов в Total Commander
Получить список файлов в папке можно при помощи популярного файлового менеджера Total Commander. Для этого, открываете в окне программы нужную папку.
Вам также может быть интересно:
- 3 способа получить список установленных программ
- Как изменить размер диска — 3 программы
В меню «Выделение», сначала выбираете пункт «Выделить всё». После того, как все файлы были выделены, в этом же меню выбираете пункт «Копировать имена в буфер».
Потом открываете Блокнот или другой текстовый редактор, и вставляете туда список файлов из буфера обмена.
Вы можете в меню «Выделение» выбрать пункт «Сохранить выделение в файл…». В этом случае, вам нужно будет дать имя файлу, а затем сохранить его в формате «TXT».
XYplorer
В XYplorer поддерживается работа в неограниченном количестве мультивкладок, в приложении настраиваемый интерфейс в однопанельном или двухпанельном режиме, в программу встроено много дополнительных инструментов и функций, есть откат изменений, просмотр мультимедиа файлов, сравнение и переименование файлов, поддержка скриптов и пакетных операций, расчет и отображение размера папок, расширенный поиск, синхронизация между каталогами, просмотр свойств и редактирование тегов файлов, есть возможность присваивать теги и цветовые метки файлам и т. д.
Разработчик XYplorer — Donald Lessau, программа поддерживает русский язык.
Эффективность TeraCopy
Ну а теперь об эффективности алгоритмов TeraCopy. При проведении тестов чуда, конечно же, не произошло. Чудеса при копировании и перемещении данных возможны только в результате замены HDD на SSD. Тем не менее факт ускорения был зафиксирован. Один и тот же файл весом в 4,23 Гб копировался по одному и тому же пути (естественно, с зачисткой следов первого захода перед вторым заходом) алгоритмами самого Total Commander и TeraCopy.
В первом случае результат составил 3 минуты 16 секунд.
Во втором – 2 минуты 35 секунд.
С перевесом в 41 секунду TeraCopy выиграла бой у Total Commander. Победа не ахти, но на больших объёмах работы с данными будет, соответственно, большая экономия времени.
***
TeraCopy может работать в обычной инсталлируемой и портативной версии. Для интеграции программы в проводник необходима только полноценная инсталлируемая версия. Практически все возможности программы доступны в её бесплатной редакции. В платной редакции Pro нам предлагается возможность исключения файлов и папок из копируемого/перемещаемого объёма и экспорт отчётов с сохранением информации о проведённых операциях в файлы HTML и CSV.
Скачать программу можно на её официальном сайте:https://www.codesector.com/teracopy?__c=1
Получение списка файлов в папке с помощью bat файла
Один из самых доступных и простых способов получения списка файлов в папке: использование для этого специального bat файла. Существует несколько вариантов создания файла с расширением «.bat», с разным кодом.
Для создания bat файла вам нужно будет открыть Блокнот, а затем вставить туда этот код:
chcp 1251 echo %date% %time% >filelist.txt dir /b /d >>filelist.txt
Сохраните этот файл, имя файлу можете дать любое, самому файлу нужно дать расширение «BAT». Параметры сохранения файла в Блокноте будут выглядеть примерно так:
- Имя файла: filelist.bat
- Тип файла: Все файлы
После этого нажмите на кнопку «Сохранить».
Далее помещаете созданный файл в ту папку, из которой вы хотите получить, список находящихся там файлов. После этого, запустите файл с расширением «.bat». В данной папке будет создан файл «filelist» в формате «.txt», в котором будет находиться список файлов.
Существует несколько вариантов содержимого файла с расширением «.bat». При использовании этого метода, проблем с кодировкой не возникнет.
Архивирование
Total Commander — замена любому архиватору. Программа поддерживает все распространенные форматы архивов, но .zip обладает расширенным функционалом, включая возможность создания новых каталогов прямо внутри архива.
Чтобы создать архив:
1. Выделить файлы.
2. Нажать Alt+F5.
3. Установить дополнительные параметры (необязательно).
4. Нажать Enter.
После этого стартует процесс архивации.
Для распаковки полученного архива его следует открыть как обычную папку, после чего нажать F5 — программа запустит диалоговое окно с параметрами распаковки.
Альтернативный вариант — комбинация Alt+F9, запускающая распаковку всех файлов в архиве.
Примеры использования XCOPY
XCOPY /? – выдать краткую справку по использованию команды.
xcopy C:users D:copy1 – скопировать файлы из каталога C:users в каталог D:copy1 . Будет выполняться копирование без подкаталогов и только файлов без атрибутов «Скрытый» и «Системный». Для скопированных файлов будет установлен атрибут Архивный . Если каталог, в который выполняется копирование, не существует, то пользователю будет выдано сообщение:
Что означает D:copy1: имя файла или каталога (F = файл, D = каталог)? D
После ответа D целевой каталог будет создан и копирование будет выполняться в D:COPY1. Для подавления запроса на создание целевого каталога используется параметр /I:
xcopy C:users D:copy1 /I
xcopy C:users D:copy1 /H /Y /C – копирование файлов, включая скрытые и системные, с подавлением запроса на перезапись существующих и возобновлением при ошибке. Если существующий в целевом каталоге файл имеет атрибут «Только чтение», то копирование не выполняется. Для перезаписи таких файлов используется ключ /R
xcopy C:users D:copy1 /H /Y /C /R /S – скопировать все файлы и подкаталоги ( /S ) с перезаписью существующих без запроса ( /Y ) , включая скрытые и системные. ( /H ) с перезаписью файлов с атрибутом «Только чтение» (/R) и игнорированием ошибок ( /C )
xcopy C:users D:copy1 /H /Y /C /R /S /EXCLUDE:C:userslistnotcopy.txt – то же, что и в предыдущем случае, но текстовый файл C:userslistnotcopy.txt задает признаки исключения из процедуры копирования. Пример содержимого файла:
User1 – исключить из копирования каталог C:usersuser1 All Users исключить из копирования каталог C:usersAll Users de*.* – исключить из копирования все файлы и каталоги, начинающиеся на буквосочетание «de»
xcopy C:users*.exe D:copy1 /H /Y /C /R /S /EXCLUDE:C:userslistnotcopy.txt – то же, что и в предыдущем примере, но выполняется только копирование исполняемых файлов с расширением .exe .
xcopy %TEMP%*.ini D:copy1ini /H /Y /C /R /S /I – копирование всех файлов с расширением .ini из каталога временных файлов в каталог D:copy1ini . Если целевой подкаталог ini не существует, то он будет создан без запроса пользователю ( /I ) .
xcopy %TEMP%*.ini D:copy1ini /H /Y /C /R /S /I /D:09-16-2013 – то же, что и в предыдущем примере, но выполняется копирование только тех файлов, у которых установлена дата изменения 16 сентября 2013 года и старше.
xcopy C: D:copy1LISTDIR /H /Y /C /R /S /I /E /T – создать структуру папок диска C: в каталоге D:copy1LISTDIR . Копирование файлов не выполняется. Копируются только папки, включая пустые, скрытые и системные.
xcopy C: D:copy1LISTDIR /H /Y /C /R /S /I /E /T /D:09-16-2013 воссоздать в каталоге D:copy1LISTDIR структуру папок диска C: , с датой изменения 16 сентября 2013 года и позже.
Для добавления новых файлов в каталоги и обновления существующих на более поздние версии, можно использовать команду REPLACE.
Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться»
Копирование файлов и директорий.
Директорию мы создали. Теперь нам нужно решить вопрос с тем, как копировать. Предположим наша папка называется Видео. Мы хотим скопировать в неё какой-то фильм. Значит первым делом, нам нужно перейти в эту папку, — куда мы будем копировать. А в другой панели выбрать флэш-диск, и курсором с помощью стрелочек или мышки выбрать то, что мы хотим скопировать, — в данном случае какой-то фильм с флэшки друга. А далее нажимаем F5 .
Появляется окно подтверждения на выполнение операции, и здесь мы можем нажать ОК, дав добро на копирование, либо Отмена, тем самым отменив операцию.
Если подытожить, то T otal C ommander копирует информацию из одной панели в другую, причём оттуда, где стоит курсор, туда — где курсора нету. Чтобы совершить обратную операцию, — скопировать фильм из папки Видео на флэшку вашего друга, — потребуется нажать клавишу Tab , перейдя тем самым на другую панель — в папку Видео и провести аналогичную операцию .
А что же делать, если там, куда вы копируете, уже есть файл с точно таким же названием? Как же быть тогда? Тогда файловый менеджер спросит у вас, как быть в таком случае.
Заменить — и тогда тот файл, который уже есть, быть затёрт тем, что уже есть на диске.
Заменить всё — если таких файлов несколько, то будут затёрты все файлы. И при этом у вас за текущую операцию T otal C ommander больше не будет спрашивать, что делать с файлом, если таковые ещё будут.
Пропусти т ь — ничего не делать, а перейти к следующему файлу.
Отмена — отменить копирование.
Заменить более старые — существующие файлы будут замещены более новой копией.
Пропустить все — пропустить все, ничего не делать со всеми одноименным файлами, но при этом продолжить к о пирование.
Переименовать — указать другое имя для копируемого файла.
Дописать – совместить, другими словами записать информацию в конец существующего файла. При этом не факт, что такие файлы будут читаться.