<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Удаление с исключением.</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9119.html</link>
    <description>Собсно, есть директория:&lt;br&gt;/home/1/&lt;br&gt;в ней ряд файлов и других директорий.&lt;br&gt;home/1/2/&lt;br&gt;home/1/3/&lt;br&gt;В каждой из директорий, опять-же есть файлы и папки.&lt;br&gt;так-же, в директории /home/1/2/ есть папка 6 c файлами.&lt;br&gt;Суть задачи, удалить все файлы и директории, кроме /home/1/2/6/ и файлов в ней.&lt;br&gt;Пробовал find с grep -v, но он таки удаляет /home/1/2/ со всем.&lt;br&gt;</description>

<item>
    <title>Удаление с исключением. (pavlinux)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9119.html#16</link>
    <pubDate>Tue, 10 May 2011 21:23:08 GMT</pubDate>
    <description>&amp;gt;&amp;gt; find ! -path &apos;./1/2/6&apos; -a ! -path &apos;./1/2/6/*&apos; -exec rm -r &#123;&#125; &lt;br&gt;&amp;gt;&amp;gt; &#092;; &lt;br&gt;&amp;gt; Точнее так: &lt;br&gt;&amp;gt; find ! -path &apos;./1&apos; -a ! -path &apos;./1/2&apos; -a ! -path &apos;./1/2/6&apos; -a ! -path &apos;./1/2/6/*&apos; -exec rm -r &#123;&#125; &#092;; &lt;br&gt;&lt;br&gt;Не, у Митрофаныча короче :)&lt;br&gt;</description>
</item>

<item>
    <title>Удаление с исключением. (XoRe)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9119.html#15</link>
    <pubDate>Tue, 10 May 2011 13:11:11 GMT</pubDate>
    <description>&amp;gt; find ! -path &apos;./1/2/6&apos; -a ! -path &apos;./1/2/6/*&apos; -exec rm -r &#123;&#125; &lt;br&gt;&amp;gt; &#092;; &lt;br&gt;&lt;br&gt;Точнее так:&lt;br&gt;&lt;br&gt;find ! -path &apos;./1&apos; -a ! -path &apos;./1/2&apos; -a ! -path &apos;./1/2/6&apos; -a ! -path &apos;./1/2/6/*&apos; -exec rm -r &#123;&#125; &#092;;&lt;br&gt;</description>
</item>

<item>
    <title>Удаление с исключением. (XoRe)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9119.html#14</link>
    <pubDate>Tue, 10 May 2011 10:56:47 GMT</pubDate>
    <description>&amp;gt; Собсно, есть директория: &lt;br&gt;&amp;gt; /home/1/ &lt;br&gt;&amp;gt; в ней ряд файлов и других директорий.&lt;br&gt;&amp;gt; home/1/2/ &lt;br&gt;&amp;gt; home/1/3/ &lt;br&gt;&amp;gt; В каждой из директорий, опять-же есть файлы и папки.&lt;br&gt;&amp;gt; так-же, в директории /home/1/2/ есть папка 6 c файлами.&lt;br&gt;&amp;gt; Суть задачи, удалить все файлы и директории, кроме /home/1/2/6/ и файлов в &lt;br&gt;&amp;gt; ней.&lt;br&gt;&amp;gt; Пробовал find с grep -v, но он таки удаляет /home/1/2/ со всем. &lt;br&gt;&lt;br&gt;rm -rf /home/&#091;^1&#093;*&lt;br&gt;rm -rf /home/1/&#091;^2&#093;*&lt;br&gt;rm -rf /home/1/2/&#091;^6&#093;*&lt;br&gt;&lt;br&gt;или&lt;br&gt;&lt;br&gt;find ! -path &apos;./1/2/6&apos; -a ! -path &apos;./1/2/6/*&apos; -exec rm -r &#123;&#125; &#092;;&lt;br&gt;</description>
</item>

<item>
    <title>Удаление с исключением. (Andrey Mitrofanov)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9119.html#13</link>
    <pubDate>Tue, 10 May 2011 10:24:59 GMT</pubDate>
    <description>&amp;gt; добавь &lt;br&gt;&lt;br&gt;Добавил.&lt;br&gt;&lt;br&gt;&amp;gt; touch 1/2/6_junk_file_&#123;1..100&#125; &lt;br&gt;&amp;gt; touch 1/2_junk_file_&#123;1..100&#125; &lt;br&gt;&lt;br&gt;Без &#123;...&#125; - для теста достаточно одной таблэтки.&lt;br&gt;&lt;br&gt;&amp;gt; Предположим, что их тоже нужно удалять.&lt;br&gt;&lt;br&gt;Удалились. Без изменения основной строки.&lt;br&gt;&lt;br&gt;...&lt;br&gt;Для полноты :)) тест-кейса сделал -&lt;br&gt;&lt;br&gt;mkdir -p 1/&#123;1,2,3&#125;/&#123;5,6,7&#125;&lt;br&gt;touch 1&#123;,/&#123;1,2,3&#125;&#123;,/&#123;5,6,7&#125;&#125;&#125;/file&lt;br&gt;&lt;br&gt;Получил &quot;тот же&quot; результат -&lt;br&gt;&lt;br&gt;TEST:&lt;br&gt;find: cannot delete &#096;1/2/6&apos;: Каталог не пуст&lt;br&gt;find: cannot delete &#096;1/2&apos;: Каталог не пуст&lt;br&gt;find: cannot delete &#096;1/&apos;: Каталог не пуст&lt;br&gt;AFTER:&lt;br&gt;1/2/6/file&lt;br&gt;1/2/6&lt;br&gt;1/2&lt;br&gt;1/&lt;br&gt;</description>
</item>

<item>
    <title>Удаление с исключением. (ACCA)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9119.html#12</link>
    <pubDate>Tue, 10 May 2011 09:59:07 GMT</pubDate>
    <description>&amp;gt; touch 1/&#123;1,2,3&#125;/&#123;5,6,7&#125;/file &lt;br&gt;&lt;br&gt;добавь&lt;br&gt;&lt;br&gt;touch 1/2/6_junk_file_&#123;1..100&#125;&lt;br&gt;touch 1/2_junk_file_&#123;1..100&#125;&lt;br&gt;&lt;br&gt;Предположим, что их тоже нужно удалять.&lt;br&gt;</description>
</item>

<item>
    <title>Удаление с исключением. (Вова)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9119.html#11</link>
    <pubDate>Tue, 10 May 2011 09:22:58 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; TEST: &lt;br&gt;&amp;gt; find: cannot delete &#096;1/2/6&apos;: Каталог не пуст &lt;br&gt;&amp;gt; find: cannot delete &#096;1/2&apos;: Каталог не пуст &lt;br&gt;&amp;gt; find: cannot delete &#096;1/&apos;: Каталог не пуст &lt;br&gt;&amp;gt; AFTER: &lt;br&gt;&amp;gt; 1/2/6/file &lt;br&gt;&amp;gt; 1/2/6 &lt;br&gt;&amp;gt; 1/2 &lt;br&gt;&amp;gt; 1/ &lt;br&gt;&amp;gt; $ _ &lt;br&gt;&lt;br&gt;Это верный вариант, так и надо делать, через файнд, у утилиты довольно сильная логика условий. Я как-то пропустил в постановке задачи &quot;и файлы в директории&quot;, тоже бы это написал, варианты выше  - как ересь.&lt;br&gt;</description>
</item>

<item>
    <title>Удаление с исключением. (Andrey Mitrofanov)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9119.html#10</link>
    <pubDate>Tue, 10 May 2011 08:03:12 GMT</pubDate>
    <description>&amp;gt; так-же, в директории /home/1/2/ есть папка 6 c файлами.&lt;br&gt;&amp;gt; Суть задачи, удалить все файлы и директории, кроме /home/1/2/6/ и файлов в &lt;br&gt;&amp;gt; ней.&lt;br&gt;&amp;gt; Пробовал find с grep -v, но он таки удаляет /home/1/2/ со всем. &lt;br&gt;&lt;br&gt;$ cat ./x.sh&lt;br&gt;#!/bin/bash&lt;br&gt;&lt;br&gt;mkdir tst &amp;#124;&amp;#124; exit&lt;br&gt;cd tst&lt;br&gt;&lt;br&gt;mkdir -p 1/&#123;1,2,3&#125;/&#123;5,6,7&#125;&lt;br&gt;touch 1/&#123;1,2,3&#125;/&#123;5,6,7&#125;/file&lt;br&gt;&lt;br&gt;echo &quot;BEFORE:&quot;&lt;br&gt;find 1/ -depth&lt;br&gt;&lt;br&gt;echo &quot;TEST:&quot;&lt;br&gt;find 1/ -depth -path 1/2/6/* -prune -o -delete&lt;br&gt;&lt;br&gt;echo &quot;AFTER:&quot;&lt;br&gt;find 1/ -depth&lt;br&gt;$ ./x.sh&lt;br&gt;BEFORE:&lt;br&gt;1/1/5/file&lt;br&gt;1/1/5&lt;br&gt;1/1/6/file&lt;br&gt;1/1/6&lt;br&gt;1/1/7/file&lt;br&gt;1/1/7&lt;br&gt;1/1&lt;br&gt;1/2/5/file&lt;br&gt;1/2/5&lt;br&gt;1/2/6/file&lt;br&gt;1/2/6&lt;br&gt;1/2/7/file&lt;br&gt;1/2/7&lt;br&gt;1/2&lt;br&gt;1/3/5/file&lt;br&gt;1/3/5&lt;br&gt;1/3/6/file&lt;br&gt;1/3/6&lt;br&gt;1/3/7/file&lt;br&gt;1/3/7&lt;br&gt;1/3&lt;br&gt;1/&lt;br&gt;TEST:&lt;br&gt;find: cannot delete &#096;1/2/6&apos;: Каталог не пуст&lt;br&gt;find: cannot delete &#096;1/2&apos;: Каталог не пуст&lt;br&gt;find: cannot delete &#096;1/&apos;: Каталог не пуст&lt;br&gt;AFTER:&lt;br&gt;1/2/6/file&lt;br&gt;1/2/6&lt;br&gt;1/2&lt;br&gt;1/&lt;br&gt;$ _&lt;br&gt;</description>
</item>

<item>
    <title>Удаление с исключением. (Вова)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9119.html#9</link>
    <pubDate>Tue, 10 May 2011 02:49:43 GMT</pubDate>
    <description>&amp;gt; Собсно, есть директория: &lt;br&gt;&amp;gt; /home/1/ &lt;br&gt;&amp;gt; в ней ряд файлов и других директорий.&lt;br&gt;&amp;gt; home/1/2/ &lt;br&gt;&amp;gt; home/1/3/ &lt;br&gt;&amp;gt; В каждой из директорий, опять-же есть файлы и папки.&lt;br&gt;&amp;gt; так-же, в директории /home/1/2/ есть папка 6 c файлами.&lt;br&gt;&amp;gt; Суть задачи, удалить все файлы и директории, кроме /home/1/2/6/ и файлов в &lt;br&gt;&amp;gt; ней.&lt;br&gt;&amp;gt; Пробовал find с grep -v, но он таки удаляет /home/1/2/ со всем. &lt;br&gt;&lt;br&gt;inum=&#096;ls -i /home/1/2/6&amp;#124; sed &apos;s/ .*//&apos;&#096; find  /home/1 ! -inum $inum -delete&lt;br&gt;</description>
</item>

<item>
    <title>Удаление с исключением. (pavlinux)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/9119.html#8</link>
    <pubDate>Tue, 10 May 2011 00:02:11 GMT</pubDate>
    <description>&amp;gt;&amp;gt; 1. chartt +i /home/1/2/6/*; rm -rf /home/1; chartt -i /home/1/2/6/*; &lt;br&gt;&amp;gt; acca&#064;acca96:~/tmp$ chartt &lt;br&gt;&amp;gt; chartt: command not found &lt;br&gt;&lt;br&gt;ну бывает...&lt;br&gt;&amp;gt; Прогнал. chattr хорошее решение, если гарантируется /home/1/2/6/*.&lt;br&gt;&amp;gt;&amp;gt; 2. chown -R nobody /home/1/; chown -R root /home/1/2/6/; sudo -u nobody &lt;br&gt;&amp;gt;&amp;gt; rm -rf ./ &lt;br&gt;&amp;gt; А как вернуть chown назад?&lt;br&gt;&lt;br&gt;На бумажку записать :) &lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
