<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=11918</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=11918&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Рекурсивное перемещение файлов по маске с сохранением структуры».]]></description>
		<lastBuildDate>Thu, 15 May 2014 12:41:50 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=408985#p408985</link>
			<description><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">$ cp -v --parent **/*p.png target/</div></p></blockquote></div><p>Специально зарегился, чтобы спасибо сказать. <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /> <br />И спасибо за указание того, что shopt нужно использовать, сам бы не разобрался.<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">shopt -s globstar</div></p>]]></description>
			<author><![CDATA[null@example.com (iamkaant)]]></author>
			<pubDate>Thu, 15 May 2014 12:41:50 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=408985#p408985</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=197040#p197040</link>
			<description><![CDATA[<div class="quotebox"><cite>NordWest пишет:</cite><blockquote><p>А вот с перемещением как?</p></blockquote></div><p>а перемещение это довольно опасная операция. не советую её использовать...<br /></p><div class="quotebox"><cite>NordWest пишет:</cite><blockquote><p>Или есть какая-то хитрая штука у того же mv, которая скопирует структуру каталога?</p></blockquote></div><p>не знаю. это не нужно ИМХО.<br /></p><div class="quotebox"><cite>NordWest пишет:</cite><blockquote><p>Перемещение - это копирование + удаление скопированного файла.</p></blockquote></div><p>а вот и нет. точнее да, но только в том случае, если вы перемещаете в разных ФС. Если в одной и той-же, то mv эт<br />создание другого имени у файла + удаление старого имени. Можете проверить - в этом случае не нужно даже права чтения файла, достаточно права модификации каталога где источник + права добавления к каталогу-приёмнику.</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Fri, 22 Jul 2011 15:08:05 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=197040#p197040</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196867#p196867</link>
			<description><![CDATA[<p>rsync спасет мир, но не в этом случае <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /> </p><div class="quotebox"><cite>i2ks пишет:</cite><blockquote><p>Сижу читаю топик, фраза &quot;перемещение&quot; и здесь же</p></blockquote></div><p>Не вижу противоречия. Перемещение - это копирование + удаление скопированного файла.</p>]]></description>
			<author><![CDATA[null@example.com (NordWest)]]></author>
			<pubDate>Fri, 22 Jul 2011 07:55:45 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196867#p196867</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196859#p196859</link>
			<description><![CDATA[<p>Сижу читаю топик, фраза &quot;перемещение&quot; и здесь же </p><div class="quotebox"><cite>NordWest пишет:</cite><blockquote><p>которая скопирует структуру каталога?</p></blockquote></div><p>может вас rsync спасет?&nbsp; oO</p>]]></description>
			<author><![CDATA[null@example.com (i2ks)]]></author>
			<pubDate>Fri, 22 Jul 2011 07:20:06 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196859#p196859</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196853#p196853</link>
			<description><![CDATA[<p>Спасибо, вариантов с копированием действительно предостаточно. А вот с перемещением как? У mv нет ключа --parents. Его можно использовать для в накрученном скрипте, где и cp без --parents. Можно было бы копировать и потом удалять, но нет гарантий, что это будет один и тот же список файлов. Или есть какая-то хитрая штука у того же mv, которая скопирует структуру каталога?</p>]]></description>
			<author><![CDATA[null@example.com (NordWest)]]></author>
			<pubDate>Fri, 22 Jul 2011 07:12:36 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196853#p196853</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196837#p196837</link>
			<description><![CDATA[<div class="quotebox"><cite>Fat-Zer пишет:</cite><blockquote><p>на случай если нужно ещё какое-то хитрое переименование... правда тогда лучше всё в аргументы find упихнуть...</p></blockquote></div><p>в этих случаях я использую что-то вроде<br />find УСЛОВИЕ -printf ФОРМАТ | sed ...</p><p>PS:<br />или</p><p>find ... &gt;file.list</p><p>sed -i &#039;&#039; file.list</p><p>while read NAME; do<br />действие<br />done &lt;file.list</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Fri, 22 Jul 2011 06:40:44 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196837#p196837</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196834#p196834</link>
			<description><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>дык зачем тут вообще какие-то скрипты, если cp отлично справляется?</p></blockquote></div><p>на случай если нужно ещё какое-то хитрое переименование... правда тогда лучше всё в аргументы find упихнуть...</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Fri, 22 Jul 2011 06:34:43 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196834#p196834</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196825#p196825</link>
			<description><![CDATA[<div class="quotebox"><cite>Fat-Zer пишет:</cite><blockquote><p>скорость в разы медленнее будет...</p></blockquote></div><p>дык зачем тут вообще какие-то скрипты, если <strong>cp</strong> отлично справляется?</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Fri, 22 Jul 2011 06:12:51 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196825#p196825</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196822#p196822</link>
			<description><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>Ну и конечно</p></blockquote></div><p>не знал про такое, спасибо...<br /></p><div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>ответ на вопрос &quot;зачем?&quot; будет ясен после того, как вы сравните скорость моего и своего варианта хотя-бы даже на сотне файлов и каталогов.</p></blockquote></div><p>согласен... скорость в разы медленнее будет...</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Fri, 22 Jul 2011 06:07:03 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196822#p196822</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196815#p196815</link>
			<description><![CDATA[<div class="quotebox"><cite>Fat-Zer пишет:</cite><blockquote><p>нуда... скобки забыл... fixed...<br />как без него?</p></blockquote></div><p>вообще-то путь выделяется без слеша. Так проще потом с ним работать.<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">ksu@ksu:~$ NAME=&quot;/a/b/c/d/e/file&quot;<br />ksu@ksu:~$ echo &quot;${NAME%/*}&quot;<br />/a/b/c/d/e<br /></div><br />не написал раньше потому, что не знал, что вы хотите сделать (без скобок непонятно)<br />выделить имя файла можно так:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">ksu@ksu:~$ echo &quot;${NAME##*/}&quot;<br />file<br /></div><br />Ну и конечно<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">ksu@ksu:~$ basename &quot;$NAME&quot;<br />file<br />ksu@ksu:~$ dirname &quot;$NAME&quot;<br />/a/b/c/d/e<br /></div></p><p>ЗЫЖ в первом варианте $TARGET_FILE_DIR не использовалась.</p><p>ЗЗЫЖ ответ на вопрос &quot;зачем?&quot; будет ясен после того, как вы сравните скорость моего и своего варианта хотя-бы даже на сотне файлов и каталогов.</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Fri, 22 Jul 2011 05:56:34 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196815#p196815</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196698#p196698</link>
			<description><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>а зачем?</p></blockquote></div><p>не знаю... мне так нравится...<br /></p><div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>Кстати, sed тут во первых неправильно применяется, во вторых просто не нужна.</p></blockquote></div><p>нуда... скобки забыл... fixed...<br />как без него?<br /></p><div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>Как и вся та строчка.</p></blockquote></div><p>о_О</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Thu, 21 Jul 2011 13:52:21 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196698#p196698</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196674#p196674</link>
			<description><![CDATA[<div class="quotebox"><cite>Fat-Zer пишет:</cite><blockquote><p>а если что-то подобное соорудить:</p></blockquote></div><p>а зачем?</p><p>Кстати, sed тут во первых неправильно применяется, во вторых просто не нужна.<br />Как и вся та строчка.</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Thu, 21 Jul 2011 13:09:22 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196674#p196674</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196558#p196558</link>
			<description><![CDATA[<p>а если что-то подобное соорудить:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">#!/bin/bash<br />find &lt;фильтр&gt; | while read FILE; do<br />&nbsp; &nbsp; TARGET_FILE_DIR=&quot;${TARGET_DIR}/$(echo ${FILE}| sed -e &#039;s!\(.*/\).*$!\1!&#039;)&quot;<br />&nbsp; &nbsp; mkdir -p $TARGET_FILE_DIR<br />&nbsp; &nbsp; cp FILE $TARGET_FILE_DIR<br />done<br /></div></p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Thu, 21 Jul 2011 08:59:07 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196558#p196558</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196548#p196548</link>
			<description><![CDATA[<div class="quotebox"><cite>NordWest пишет:</cite><blockquote><p>У меня &quot;globstar off&quot;.</p></blockquote></div><p>дык сделайте on.<br />hint: <strong>help shopt</strong><br /></p><div class="quotebox"><cite>NordWest пишет:</cite><blockquote><p>то это сработает:</p></blockquote></div><p>нет.<br />подкаталоги не пойдут.<br /></p><div class="quotebox"><cite>NordWest пишет:</cite><blockquote><p>cp -v --parent $1**/*.arj target/</p></blockquote></div><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">( cd &quot;$1&quot; &amp;&amp; cp -v --parent **/*.arj target/ )</div><br />не?<br />ВСЕ операции в Linux выполняются в рабочем каталоге. Управлять рабочим каталогом из какого-то левого - ИМХО маздайный бред. Кстати, в TC&amp;NC тоже есть текущий каталог.</p><p>PS: внутри скрипта скобки не нужны:<br /></p><div class="codebox"><pre><code>#!/bin/bash
shopt -s globstar
cd &quot;$1&quot;
cp -v --parent **/*.arj target/</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Thu, 21 Jul 2011 08:26:40 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196548#p196548</guid>
		</item>
		<item>
			<title><![CDATA[Re: Рекурсивное перемещение файлов по маске с сохранением структуры]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=196533#p196533</link>
			<description><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>hint:</p></blockquote></div><p>У меня &quot;globstar off&quot;. </p><p>Если перейти в папку, из которой нужно копировать, то это сработает:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">$ cp -v --parent **/*.arj target/</div></p><p>Если без перехода и с путем к исходной папке, так например:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">$ cp -v --parent $1**/*.arj target/</div><br />Будет снова &quot;/path2resdir/path2inidir/folder01/file1.arj&quot;<br />Конечно можно переходить -&gt; копировать -&gt; возвращаться.</p>]]></description>
			<author><![CDATA[null@example.com (NordWest)]]></author>
			<pubDate>Thu, 21 Jul 2011 07:33:03 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=196533#p196533</guid>
		</item>
	</channel>
</rss>
