Thanks David for the staring point.  Got it working now, here it is:<div><br></div><div><div>#!/bin/bash</div><div>for MYDIR in `find  /Users/ -type d | sed &#39;1d&#39; | grep -v -F -f tokeep.txt`</div><div>do</div><div>  rm -vrf $MYDIR</div>

<div>done</div><div><br></div><div>Added a sed &#39;1d&#39; to cut out the current directory from the find results.  Also added -F so grep interprets the source file pattern as fix strings.</div><div><br></div><div>Cheers,</div>

<div><br></div><div>Nathan.</div><div><br></div><br><div class="gmail_quote">On Mon, Aug 8, 2011 at 10:43 AM, David Halliday <span dir="ltr">&lt;<a href="mailto:david.halliday@gmail.com">david.halliday@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Look again at my example. I use the &quot;grep -v&quot; to negate the behaviour of grep<div><br></div><div><font face="&#39;courier new&#39;, monospace">$ more file.txt</font></div>

<div><font face="&#39;courier new&#39;, monospace">foo<br>
</font></div><div><font face="&#39;courier new&#39;, monospace">bar<br></font></div><div><font face="&#39;courier new&#39;, monospace">abc</font></div><div><font face="&#39;courier new&#39;, monospace"><br>
</font></div><div><div class="gmail_quote">$ grep &quot;foo&quot; file.txt</div><div class="gmail_quote">foo</div><div class="gmail_quote"><br></div><div class="gmail_quote">$ grep -v &quot;foo&quot; file.txt</div><div class="gmail_quote">


bar</div><div class="gmail_quote">abc</div><div><div></div><div class="h5"><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">On 7 August 2011 22:30, Nathan Friend <span dir="ltr">&lt;<a href="mailto:nathan.friend@gmail.com" target="_blank">nathan.friend@gmail.com</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello KLUG,<div>Looking at this again now.  So my list file &quot;dir_list&quot; contains all the directory&#39;s I want to preserve e.g.</div>


<div><br></div><div>/Users/administrator</div><div>/Users/user1</div><div>/Users/user5</div>

<div><br>How could I script to delete all directory&#39;s in /Users/* excluding the ones in dir_list.  David&#39;s suggestion of using the find command to generate a list file of the current /Users/* contents is OK, but how do I use this to compare against the exclusion list?</div>




<div><br></div><div>Cheers,</div><div><br></div><font color="#888888"><div>Nathan. </div></font><div><div></div><div><div><br></div><div><br><div class="gmail_quote">On Fri, Jul 15, 2011 at 11:04 PM, Nathan Friend <span dir="ltr">&lt;<a href="mailto:nathan.friend@gmail.com" target="_blank">nathan.friend@gmail.com</a>&gt;</span> wrote:<br>




<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">mmmm OK that&#39;s an interesting idea.  So the first part of the script builds the contents of the exclusion file...<div>




<br></div><div>Cheers,</div><div><br></div><div><font color="#888888">Nathan.</font><div><div></div><div><br><div><br><div class="gmail_quote">On Fri, Jul 15, 2011 at 6:49 PM, David Halliday <span dir="ltr">&lt;<a href="mailto:david.halliday@gmail.com" target="_blank">david.halliday@gmail.com</a>&gt;</span> wrote:<br>





<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>why not create the list using the find command.<div><br></div><div>find directories matching pattern: find -type d -name fred*</div>





<div>then pipe the output into grep: grep -v -f myFilesToKeep.txt</div><div><br></div>
<div>Using -v reverses the output so it only outputs lines that aren&#39;t in the list (one per line).</div><div><br></div><div>so: </div><div><div><font face="&#39;courier new&#39;, monospace">amon@amon1:~$ find / -maxdepth 1 -type d</font></div>






<div><font face="&#39;courier new&#39;, monospace">/</font></div><div><font face="&#39;courier new&#39;, monospace">/srv</font></div><div><font face="&#39;courier new&#39;, monospace">/sbin</font></div>
<div><font face="&#39;courier new&#39;, monospace">/var</font></div><div><font face="&#39;courier new&#39;, monospace">/selinux</font></div><div><font face="&#39;courier new&#39;, monospace">/cdrom</font></div>
<div><font face="&#39;courier new&#39;, monospace">/lib32</font></div><div><font face="&#39;courier new&#39;, monospace">/media</font></div><div><font face="&#39;courier new&#39;, monospace">/home</font></div>
<div><font face="&#39;courier new&#39;, monospace">/sys</font></div><div><font face="&#39;courier new&#39;, monospace">/tmp</font></div><div><font face="&#39;courier new&#39;, monospace">/mnt</font></div>
<div><font face="&#39;courier new&#39;, monospace">/opt</font></div><div><font face="&#39;courier new&#39;, monospace">/dev</font></div><div><font face="&#39;courier new&#39;, monospace">/usr</font></div>
<div><font face="&#39;courier new&#39;, monospace">/root</font></div><div><font face="&#39;courier new&#39;, monospace">/bin</font></div><div><font face="&#39;courier new&#39;, monospace">/boot</font></div>
<div><font face="&#39;courier new&#39;, monospace">/etc</font></div><div><font face="&#39;courier new&#39;, monospace">/lost+found</font></div><div><font face="&#39;courier new&#39;, monospace">/lib</font></div>
<div><font face="&#39;courier new&#39;, monospace">/proc</font></div><div><font face="&#39;courier new&#39;, monospace">amon@amon1:~$ more myFilesToKeep.txt </font></div><div>
<font face="&#39;courier new&#39;, monospace">tmp</font></div><div><font face="&#39;courier new&#39;, monospace">sys</font></div><div><font face="&#39;courier new&#39;, monospace">amon@amon1:~$ find / -maxdepth 1 -type d | grep -v -f myFilesToKeep.txt </font></div>






<div><font face="&#39;courier new&#39;, monospace">/</font></div><div><font face="&#39;courier new&#39;, monospace">/srv</font></div><div><font face="&#39;courier new&#39;, monospace">/sbin</font></div>
<div><font face="&#39;courier new&#39;, monospace">/var</font></div><div><font face="&#39;courier new&#39;, monospace">/selinux</font></div><div><font face="&#39;courier new&#39;, monospace">/cdrom</font></div>
<div><font face="&#39;courier new&#39;, monospace">/lib32</font></div><div><font face="&#39;courier new&#39;, monospace">/media</font></div><div><font face="&#39;courier new&#39;, monospace">/home</font></div>
<div><font face="&#39;courier new&#39;, monospace">/mnt</font></div><div><font face="&#39;courier new&#39;, monospace">/opt</font></div><div><font face="&#39;courier new&#39;, monospace">/dev</font></div>
<div><font face="&#39;courier new&#39;, monospace">/usr</font></div><div><font face="&#39;courier new&#39;, monospace">/root</font></div><div><font face="&#39;courier new&#39;, monospace">/bin</font></div>
<div><font face="&#39;courier new&#39;, monospace">/boot</font></div><div><font face="&#39;courier new&#39;, monospace">/etc</font></div><div><font face="&#39;courier new&#39;, monospace">/lost+found</font></div>
<div><font face="&#39;courier new&#39;, monospace">/lib</font></div><div><font face="&#39;courier new&#39;, monospace">/proc</font></div></div><div><br></div><div>so:</div>
<div><br></div><div>for MYDIR in `<span style="font-family:&#39;courier new&#39;, monospace">find / -maxdepth 1 -type d | grep -v -f myFilesToKeep.txt</span>` </div><div>do</div><div>  rm -rf $MYDIR</div>
<div>done</div><div><br></div><div><b>NOTE: Do not run this as is! unless you want to be left with only /tmp and /sys on your system!</b></div><div><b><br>
</b></div><div>But that&#39;s a starting point, play with the man pages for find and grep.</div><div><br><div class="gmail_quote"><div><div></div><div>On 15 July 2011 14:22, Nathan Friend <span dir="ltr">&lt;<a href="mailto:nathan.friend@gmail.com" target="_blank">nathan.friend@gmail.com</a>&gt;</span> wrote:<br>






</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div><div>Afternoon KLUG,<div>Last year I wanted a bash script to delete folders if they existed in a predefined list file.  The end result was:</div>






<div><br></div><div><div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">

<div style="color:rgb(80, 0, 80)"><div>while read dir</div><div>do</div><div>if [ -d $dir ]</div><div>then</div></div><div>rm -R $dir</div><div>echo &quot;Directory $dir found and deleted.&quot;</div><div>else</div>

<div>echo &quot;Directory $dir not found.&quot;</div><div>fi</div><div>done &lt; dir_list</div></div><div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px"><br></div>

<div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px"><br></div><div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">








dir_list file contains</div><div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">/<span style="background-color:rgb(255, 255, 204);color:rgb(34, 34, 34);background-repeat:initial initial">Users</span>/user1</div>








<div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">/<span style="background-color:rgb(255, 255, 204);color:rgb(34, 34, 34);background-repeat:initial initial">Users</span>/user2</div>








<div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">/<span style="background-color:rgb(255, 255, 204);color:rgb(34, 34, 34);background-repeat:initial initial">Users</span>/user3</div>








<div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px"><br></div><div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">








This year I need to delete all files in the /Users/ folder except the ones listed in dir_list.</div><div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px"><br></div>

<div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">Any ideas?</div><div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">








<br></div><div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">Cheers,</div><div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">








<br></div><font color="#888888"><div style="border-collapse:collapse;color:rgb(51, 51, 51);font-family:arial, sans-serif;font-size:13px">Nathan.</div></font></div>
<br></div></div>_______________________________________________<br>
Kent mailing list<br>
<a href="mailto:Kent@mailman.lug.org.uk" target="_blank">Kent@mailman.lug.org.uk</a><br>
<a href="https://mailman.lug.org.uk/mailman/listinfo/kent" target="_blank">https://mailman.lug.org.uk/mailman/listinfo/kent</a><br></blockquote></div><br></div>
<br>_______________________________________________<br>
Kent mailing list<br>
<a href="mailto:Kent@mailman.lug.org.uk" target="_blank">Kent@mailman.lug.org.uk</a><br>
<a href="https://mailman.lug.org.uk/mailman/listinfo/kent" target="_blank">https://mailman.lug.org.uk/mailman/listinfo/kent</a><br></blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Kent mailing list<br>
<a href="mailto:Kent@mailman.lug.org.uk" target="_blank">Kent@mailman.lug.org.uk</a><br>
<a href="https://mailman.lug.org.uk/mailman/listinfo/kent" target="_blank">https://mailman.lug.org.uk/mailman/listinfo/kent</a><br></blockquote></div><br></div></div></div>
<br>_______________________________________________<br>
Kent mailing list<br>
<a href="mailto:Kent@mailman.lug.org.uk">Kent@mailman.lug.org.uk</a><br>
<a href="https://mailman.lug.org.uk/mailman/listinfo/kent" target="_blank">https://mailman.lug.org.uk/mailman/listinfo/kent</a><br></blockquote></div><br></div>