ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [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 11:06 ` Alexei Mezin
@ 2021-10-20 11:14   ` Alexei Mezin
  0 siblings, 0 replies; 6+ messages in thread
From: Alexei Mezin @ 2021-10-20 11:14 UTC (permalink / raw)
  To: community

20.10.2021 14:06, Alexei Mezin пишет:
> 
> Может так?
> 
> find ./ОТКУДА/ -type f -name *.h -exec cp --parent '{}' /КУДА \;
> 


Вторая ссылка в google("linux copy files with directory structure") 
выдает еще множество вариантов :)

https://unix.stackexchange.com/questions/83593/copy-specific-file-type-keeping-the-folder-structure/107647



^ 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