[ РЕШЕНО ] Создать "скелет" диска

Всем привет!

Задача передо мной стоит следующая. У меня есть несколько жёстких дисков, в каждом из которых есть раздел ЕХТ (виндовский D:\, "барахолка"), и эти разделы полностью идентичны по своему составу и структуре на всех дисках. На этом ЕХТ есть очень сложная структура каталогов и подкаталогов большой глубины, причём на каждом уровне содержатся и файлы. Мне нужно создать "скелет" этого раздела - то есть только ПУСТУЮ структуру тех же самых каталогов и подкаталогов БЕЗ ФАЙЛОВ. В инете накопал такое решение:

find . -type d >dirs.txt
mkdir SKELETON && cp dirs.txt SKELETON && cd SKELETON
xargs mkdir -p <dirs.txt


- и тогда в каталоге SKELETON будет полная визуальная копия ЕХТ без файлов. Да, это работает, проверил - НО сложность в том, что это работает, если каталоги имеют кошерные, приличные названия типа "1", "222" и т.д., которые я создал сам в целях попробовать способ. Но в реальности очень многие каталоги на ЕХТ у меня называются по-русски, содержат разные символы вроде "---", "!" и т.д., которых вышеуказанная процедура, видимо, неправильно понимает. В итоге, после применения вышеуказанных действий у меня образовалось вообще не пойми что, нечто бесструктурное (самых верхних каталогов вообще нет), и некоторые названия я даже понять не могу как образовались, каталогов с такими названиями у меня просто нет (названия похожи на хреновый гуглоперевод). В общем, визуально это и близко не похоже на структуру каталогов на ЕХТ.

Вопрос естественный - может есть какие-то более серьёзные (может и графические?) решения для такой задачи? Ну очень надо! Потому что сижу только на Арче (в ПК вставлен только ЖД с Арчем), каждый день в его ЕХТ вносятся какие-то изменения - что-то добавляется, что-то удаляется, что-то изменяется. А все 4-5 дисков я подключать не могу, а даже если бы смог, то вносить потом каждое изменение, сделанное на Арч-ЕХТ на все остальные диски - это не хватит никакого терпения и памяти, где я что в Арче менял, на что, что удалил, что добавил и т.д. А так - сделал изменение на Арче, сразу сделал его в соотв. каталоге в "скелете", а потом (когда надумаю внести изменения на ВСЕ остальные диски сразу) просто копирую "скелет" на структуру этих дисков, и изменения вносятся сами, и туда, куда надо.
yurius
"—"
вы сами ответили на свой вопрос, хотя на мой взгляд эт ерунда какая-то...
$ find . -type d -exec echo \'.{}\' \;  > dirs.txt
Ошибки в тексте-неповторимый стиль автора©
indeviral
find . -type d -exec echo \'.{}\' \; > dirs.txt

Сделал - но какую обратную команду дать, чтобы структуру создало? Потому что

xargs mkdir -p <dirs.txt

не создала ВООБЩЕ ничего. По варианту в топике создала хоть что-то, а сейчас ни одного каталога.
yurius
не создала ВООБЩЕ ничего.
всё должно работать.
может вы точку впереди не поставили? \'.{}\' иначе пути абсолютными получатся.
Ошибки в тексте-неповторимый стиль автора©
indeviral
всё должно работать.
Скопировал отсюда вашу команду в терминал, запустил, сформировался вполне содержательный dirs.txt. Но команда xargs mkdir -p <dirs.txt не отработала, уж извините. Если нужна другая - подскажите.

indeviral
может вы точку впереди не поставили? \'.{}\' иначе пути абсолютными получатся.
СКОПИРОВАЛ вашу команду. Сейчас перепроверил в терминале - есть точка.
ну если всё верно. тогда вероятно вопрос в интерпретаторе?
посмотрите у вас файл dirs.txt создаётся с корректным содержимым?

а всё догнал мой косяк, наоборот точка лишняя))
Ошибки в тексте-неповторимый стиль автора©
indeviral
посмотрите у вас файл dirs.txt создаётся с корректным содержимым?
Как проверить его корректность? Вот куски из него для примера:

'../ФОТО, ВИДЕО/Фото NIKON D5100'
'../ФОТО, ВИДЕО/Фото NIKON D5100/НЕГАТИВЫ'
'../ФОТО, ВИДЕО/Фото NIKON D5100/НЕГАТИВЫ/Untitled Export'
'../ФОТО, ВИДЕО/Фото NIKON D5100/Новая папка (26)'
'../ФОТО, ВИДЕО/Фото NIKON D5100/Новая папка (21)'
'../ФОТО, ВИДЕО/Фото NIKON D5100/Новая папка (25)'
'../ФОТО, ВИДЕО/Фото NIKON D5100/Новая папка (3)__'

'../Documents !!!!/AANDROID/Программы для USB, Sd-card/IMEI/IMEI, Serial/imei'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/IMEI/IMEI, Serial/IMEI&SN Writer V1.5.3 для МТК6572'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/IMEI/IMEI, Serial/IMEI&SN Writer V1.5.3 для МТК6572/IMEI&SN Writer V1.5.3'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/IMEI/IMEI, Serial/IMEI&SN Writer V1.5.3 для МТК6572/IMEI&SN Writer V1.5.3/Android_Gadget_CDC_driver'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/QUALLCOM'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/QUALLCOM/TAR_MD5_PACKAGER'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/QUALLCOM/TAR_MD5_PACKAGER/bin'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/QUALLCOM/TAR_MD5_PACKAGER/packaged'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/QUALLCOM/TAR_MD5_PACKAGER/parts'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/QUALLCOM/EFS_Professional__NV-Tools'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/QUALLCOM/Quallcom_UNRRICK_Bootloader'
'../Documents !!!!/AANDROID/Программы для USB, Sd-card/QUALLCOM/Quallcom_UNRRICK_Bootloader/Unbrick_F160_QH'
yurius
../
indeviral
а всё догнал мой косяк, наоборот точка лишняя))
оно всё создало у вас правда в родительском каталоге. звиняйте.

p.s. я что-то подумал что find постоянно абсолютные пути возвращает.
Ошибки в тексте-неповторимый стиль автора©
там по идее еще должен косяк вылезти если в имени попадётся кавычка( ' )
indeviral
наоборот точка лишняя

СУПЕР! Всё, как надо! Спасибо вам большущее!

Итак, РЕШЕНИЕ:


find . -type d -exec echo \'{}\' \;  > dirs.txt
mkdir SKELETON && cp dirs.txt SKELETON && cd SKELETON
xargs mkdir -p <dirs.txt
 
Зарегистрироваться или войдите чтобы оставить сообщение.