* [Comm] Копирование файлов по типу
@ 2021-10-20 10:44 А. Куликовский
  2021-10-20 11:06 ` Alexei Mezin
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: А. Куликовский @ 2021-10-20 10:44 UTC (permalink / raw)
  To: ALT Linux Community
Добрый день.
Проблема: есть дерево каталогов со смесью файлов разных типов. Нужно 
скопировать (перенести) все файлы только определённых типов в другое 
место _с сохранением структуры каталогов_. Можно с консоли или в MC.
Где-то есть самописный FPC модуль обхода дерева, можно было бы дописать, 
но должно быть и более разумное решение.
Спасибо.
-- 
Анатолий
^ permalink raw reply	[flat|nested] 6+ messages in thread- * Re: [Comm] Копирование файлов по типу
  2021-10-20 10:44 [Comm] Копирование файлов по типу А. Куликовский
@ 2021-10-20 11:06 ` Alexei Mezin
  2021-10-20 11:14   ` Alexei Mezin
  2021-10-20 11:24 ` Anton V. Boyarshinov
  2021-10-20 18:32 ` Andrey Savchenko
  2 siblings, 1 reply; 6+ messages in thread
From: Alexei Mezin @ 2021-10-20 11:06 UTC (permalink / raw)
  To: community
20.10.2021 13:44, А. Куликовский пишет:
> Проблема: есть дерево каталогов со смесью файлов разных типов. Нужно 
> скопировать (перенести) все файлы только определённых типов в другое 
> место _с сохранением структуры каталогов_. Можно с консоли или в MC.
Может так?
find ./ОТКУДА/ -type f -name *.h -exec cp --parent '{}' /КУДА \;
^ permalink raw reply	[flat|nested] 6+ messages in thread
- * Re: [Comm] Копирование файлов по типу
  2021-10-20 10:44 [Comm] Копирование файлов по типу А. Куликовский
  2021-10-20 11:06 ` Alexei Mezin
@ 2021-10-20 11:24 ` Anton V. Boyarshinov
  2021-10-20 15:56   ` Vladimir D. Seleznev
  2021-10-20 18:32 ` Andrey Savchenko
  2 siblings, 1 reply; 6+ messages in thread
From: Anton V. Boyarshinov @ 2021-10-20 11:24 UTC (permalink / raw)
  To: А.
	Куликовский
  Cc: ALT Linux Community general discussions
В Wed, 20 Oct 2021 13:44:43 +0300
А. Куликовский <kae@tut.by> пишет:
> Проблема: есть дерево каталогов со смесью файлов разных типов. Нужно 
> скопировать (перенести) все файлы только определённых типов в другое 
> место _с сохранением структуры каталогов_. Можно с консоли или в MC.
Я в таких случаях копирую всё дерево через cp -al (чтоб не занимать
лишнего места), а потом удаляю лишнее при помощи 
find -not -name '*.type' -delete
^ permalink raw reply	[flat|nested] 6+ messages in thread 
- * Re: [Comm] Копирование файлов по типу
  2021-10-20 11:24 ` Anton V. Boyarshinov
@ 2021-10-20 15:56   ` Vladimir D. Seleznev
  0 siblings, 0 replies; 6+ messages in thread
From: Vladimir D. Seleznev @ 2021-10-20 15:56 UTC (permalink / raw)
  To: ALT Linux Community general discussions
On Wed, Oct 20, 2021 at 02:24:31PM +0300, Anton V. Boyarshinov wrote:
> В Wed, 20 Oct 2021 13:44:43 +0300
> А. Куликовский <kae@tut.by> пишет:
> 
> > Проблема: есть дерево каталогов со смесью файлов разных типов. Нужно 
> > скопировать (перенести) все файлы только определённых типов в другое 
> > место _с сохранением структуры каталогов_. Можно с консоли или в MC.
> 
> Я в таких случаях копирую всё дерево через cp -al (чтоб не занимать
> лишнего места), а потом удаляю лишнее при помощи 
> find -not -name '*.type' -delete
У этого решения есть проблема, что скопированные файлы представляют
собой жёсткие ссылки, что может быть нежелательно. Но это легко
исправить с помощью следующего рецепта:
	find $dir -type f -exec sed -i ';;' '{}' ';'
где $dir -- каталог, в который копировались файлы.
-- 
   WBR,
   Vladimir D. Seleznev
^ permalink raw reply	[flat|nested] 6+ messages in thread
 
- * Re: [Comm] Копирование файлов по типу
  2021-10-20 10:44 [Comm] Копирование файлов по типу А. Куликовский
  2021-10-20 11:06 ` Alexei Mezin
  2021-10-20 11:24 ` Anton V. Boyarshinov
@ 2021-10-20 18:32 ` Andrey Savchenko
  2 siblings, 0 replies; 6+ messages in thread
From: Andrey Savchenko @ 2021-10-20 18:32 UTC (permalink / raw)
  To: ALT Linux Community general discussions
[-- Attachment #1: Type: text/plain, Size: 1546 bytes --]
On Wed, 20 Oct 2021 13:44:43 +0300 А. Куликовский wrote:
> Добрый день.
> 
> Проблема: есть дерево каталогов со смесью файлов разных типов. Нужно 
> скопировать (перенести) все файлы только определённых типов в другое 
> место _с сохранением структуры каталогов_. Можно с консоли или в MC.
> 
> Где-то есть самописный FPC модуль обхода дерева, можно было бы дописать, 
> но должно быть и более разумное решение.
Для rsync можно сколь угодно сложную систему фильтров написать, что
позволяет как обойти ограничения критериев find (хотя они тоже
достаточно широкие), так и не возится с cp -l (хотя бы потому, что
это невозможно между разными файловыми системами). При этом можно
распорядится что делать с жесткими ссылками (сохранять или
копировать) и тонко настроить многие другие аспекты. См. FILTER
RULES и последующие разделы в man rsync.
Пример:
rsync -av --exclude '**.bak' src dst
Best regards,
Andrew Savchenko
[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply	[flat|nested] 6+ messages in thread 
end of thread, other threads:[~2021-10-20 18:32 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-20 10:44 [Comm] Копирование файлов по типу А. Куликовский
2021-10-20 11:06 ` Alexei Mezin
2021-10-20 11:14   ` Alexei Mezin
2021-10-20 11:24 ` Anton V. Boyarshinov
2021-10-20 15:56   ` Vladimir D. Seleznev
2021-10-20 18:32 ` Andrey Savchenko
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git