The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Как скопировать дерево директорий без файлов?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Файловые системы, диски / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Как скопировать дерево директорий без файлов?"  +/
Сообщение от universite email(ok) on 10-Июн-11, 15:49 
Имеется огромная файлопомойка.
Нужно скопировать в другое место только скелет директорий, без содержащихся там файлов.
Причем некоторые директории в виде симлинков.

в rsync писать огромный список запрещенных расширений?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от anonymous (??) on 10-Июн-11, 16:09 
> Имеется огромная файлопомойка.
> Нужно скопировать в другое место только скелет директорий, без содержащихся там файлов.
> Причем некоторые директории в виде симлинков.

1.убрать права на чтение с файлов: chmod -r $(find /path/dir -type f)
2.скопировать cp -r /path/dir /path/to
3.вернуть права см. п1

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от universite email(ok) on 10-Июн-11, 16:36 
>> Имеется огромная файлопомойка.
>> Нужно скопировать в другое место только скелет директорий, без содержащихся там файлов.
>> Причем некоторые директории в виде симлинков.
> 1.убрать права на чтение с файлов: chmod -r $(find /path/dir -type f)

Файлов слишком много ~ больше 100М
отрабатывать будет очень долго
Файлопомойкой активно пользуются.

> 2.скопировать cp -r /path/dir /path/to
> 3.вернуть права см. п1

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от JL2001 (ok) on 10-Июн-11, 16:21 
я как раз борюсь с проблемой как tar с параметром -N убедить не ложить пустые директории в архив (в которых все файлы оказываются старше чем дата) - у меня получается весь архив из пустых директорий если все файлы старше даты
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от gpl77 (ok) on 10-Июн-11, 16:27 
> Имеется огромная файлопомойка.
> Нужно скопировать в другое место только скелет директорий, без содержащихся там файлов.
> Причем некоторые директории в виде симлинков.
> в rsync писать огромный список запрещенных расширений?

mtree есть в *bsd

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от langator (ok) on 10-Июн-11, 17:09 
можно таким скриптом
cd /path/to/dir; for item in `find . -type d -o -type l`; do mkdir /path/to/copydir/"$item"; done
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от Andrey Mitrofanov on 10-Июн-11, 17:14 
> for item in `find . -type d

На большой Ф-помойке и в зависимости от шела может "не влезть" в [ограниченную] ком.строку при расширении. Хотя, может, я и придумываю что.


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от universite email(ok) on 10-Июн-11, 17:55 
>> for item in `find . -type d
> На большой Ф-помойке и в зависимости от шела может "не влезть" в
> [ограниченную] ком.строку при расширении.

Плюс зоопарк кодировок и спецсимволов.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

6. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от Andrey Mitrofanov on 10-Июн-11, 17:10 
> Имеется огромная файлопомойка.
> Нужно скопировать в другое место только скелет директорий, без содержащихся там файлов.
> Причем некоторые директории в виде симлинков.
> в rsync писать огромный список запрещенных расширений?

( cd $from_dir/; find \! -type f ) | cpio -padmu $to_dir/

Симлинки просто скопируются: с путями в них (относительные/абсолютные) и ссылками на файлы нужно разбираться отдельно.

Просто только директории (дерево) пересоздать:

( cd $from_dir/; find -type d ) | ( cd $to_dir; xargs mkdir )

---Нет, не проверял.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от universite email(ok) on 10-Июн-11, 17:56 

> Просто только директории (дерево) пересоздать:
> ( cd $from_dir/; find -type d ) | ( cd $to_dir; xargs
> mkdir )

выглядит красиво

> ---Нет, не проверял.

щас проверю на тестовом дереве.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от universite email(ok) on 10-Июн-11, 18:12 
>> Просто только директории (дерево) пересоздать:
>> ( cd $from_dir/; find -type d ) | ( cd $to_dir; xargs
>> mkdir )
> выглядит красиво
>> ---Нет, не проверял.
> щас проверю на тестовом дереве.


( cd $from_dir/; find . -type d ) | ( cd $to_dir; xargs -0 mkdir )

Вываливается список директорий:


./Saint-Preux/To Be Or Not 1980
./Saint-Preux/Concerto Pour Une Voix 1969
./Saint-Preux/Le piano d'Abigail 1983
./Saint-Preux/Concerto pour piano 1977
./Saint-Preux/_Le_piano_sous_la_merLaMer 1972
./Saint-Preux/Invitation In Paris 1987
./Saint-Preux/Samara 1976
./Saint-Preux/YOUR HAIR & MISSA AMORIS 1975
./Camel
./Camel/Harbour Of Tears - 1996
./Turandot Puccini
./smislovie_galucinacii
./smislovie_galucinacii/Obratnaya_Storona_Zemli
./smislovie_galucinacii/Bol'shie_plany
: File name too long

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

13. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от JohnProfic (ok) on 10-Июн-11, 22:05 
>
 
> ( cd $from_dir/; find . -type d ) | ( cd $to_dir; xargs -0 mkdir )
>

Митрофаныч забыл -print0

 
( cd $from_dir/; find . -type d -print0 ) | ( cd $to_dir; xargs -0 mkdir )

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

11. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от universite email(ok) on 10-Июн-11, 18:13 
>> Имеется огромная файлопомойка.
>> Нужно скопировать в другое место только скелет директорий, без содержащихся там файлов.
>> Причем некоторые директории в виде симлинков.
>> в rsync писать огромный список запрещенных расширений?
> ( cd $from_dir/; find \! -type f ) | cpio -padmu $to_dir/


cpio: Couldn't stat "./smislovie_galucinacii/Bol'shie_plany/09._Aprel'.mp3": No such file or directory
cpio: Couldn't stat "./smislovie_galucinacii/Bol'shie_plany/04._Za_shirmami.mp3": No such file or directory
cpio: Couldn't stat "./smislovie_galucinacii/Bol'shie_plany/02._CHernaya.mp3": No such file or directory
cpio: Couldn't stat "./smislovie_galucinacii/Bol'shie_plany/03._Do_vstrechi.mp3": No such file or directory
cpio: Couldn't stat "./smislovie_galucinacii/Bol'shie_plany/wget-log": No such file or directory
cpio: Couldn't stat "./smislovie_galucinacii/Bol'shie_plany/music.wget": No such file or directory
cpio: Couldn't stat "./Saint-Preux[torrents.ru].torrent": No such file or directory
0 blocks

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

12. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от universite email(ok) on 10-Июн-11, 18:58 
> Имеется огромная файлопомойка.
> Нужно скопировать в другое место только скелет директорий, без содержащихся там файлов.
> Причем некоторые директории в виде симлинков.
> в rsync писать огромный список запрещенных расширений?

Оказалось проще:


rsync -av --include='*/' --exclude='*' source destination

Осталось сделать, чтоб симлинки корректно пересоздавались

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Как скопировать дерево директорий без файлов?"  +/
Сообщение от shadow_alone (ok) on 11-Июн-11, 05:11 
Пара вариантов:

cd /new/folder
(cd /old/folder; find -type d ! -name .) | xargs mkdir

и

cd /old/folder
find . -type d ! -name . -exec mkdir /new/folder/{} \;

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру