Sponsored Content
Top Forums Shell Programming and Scripting Help - Find command to exclude sub-directories Post 302445207 by aigles on Saturday 14th of August 2010 12:04:15 PM
Old 08-14-2010
Try and adapt the following script (it just print file names) :
Code:
while IFS='|' read subdir dir files filler
do
   echo
   echo "-----------------------------------"
   echo "Entry: <$subdir>|<$dir>|<$files>"
   echo "-----------------------------------"
   echo
   find_names=$(echo "$files" | sed "s/[[:space:]]*//g;s/\([^,]*\)\(,\|\$\)/-name '\1'\2/g;s/,/ -o /g")
   case "$subdir" in
     N|n) dir_name=`basename $dir`
          find_subdir="'(' -type d ! -name '$dir_name' -prune ')' -o" ;;
       *) find_subdir="" ;;
   esac
   eval find "$dir" ${find_subdir} -type f "'(' '('" ${find_names} " ')' -print ')'"
done < pchang.dat

Code:
$ cat pchang.dat
Y|ARCHIVE|*
Y|ARCHIVE|*.txt, *.sh
N|ARCHIVE|*
N|ARCHIVE|*.txt
$ dir -R ARCHIVE
ARCHIVE:
dir1  dir2  grep_with_context.txt  my_test.sh  tree  tree.sed

ARCHIVE/dir1:
readme.txt  subdir_1  subdir_2

ARCHIVE/dir1/subdir_1:
list_1.txt  scan_dir.opt  scan_dir.sh

ARCHIVE/dir1/subdir_2:
compile.sh

ARCHIVE/dir2:
$ sh pchang.sh

-----------------------------------
Entry: <Y>|<ARCHIVE>|<*>
-----------------------------------

ARCHIVE/dir1/readme.txt
ARCHIVE/dir1/subdir_1/list_1.txt
ARCHIVE/dir1/subdir_1/scan_dir.opt
ARCHIVE/dir1/subdir_1/scan_dir.sh
ARCHIVE/dir1/subdir_2/compile.sh
ARCHIVE/grep_with_context.txt
ARCHIVE/my_test.sh
ARCHIVE/tree
ARCHIVE/tree.sed

-----------------------------------
Entry: <Y>|<ARCHIVE>|<*.txt, *.sh>
-----------------------------------

ARCHIVE/dir1/readme.txt
ARCHIVE/dir1/subdir_1/list_1.txt
ARCHIVE/dir1/subdir_1/scan_dir.sh
ARCHIVE/dir1/subdir_2/compile.sh
ARCHIVE/grep_with_context.txt
ARCHIVE/my_test.sh

-----------------------------------
Entry: <N>|<ARCHIVE>|<*>
-----------------------------------

ARCHIVE/grep_with_context.txt
ARCHIVE/my_test.sh
ARCHIVE/tree
ARCHIVE/tree.sed

-----------------------------------
Entry: <N>|<ARCHIVE>|<*.txt>
-----------------------------------

ARCHIVE/grep_with_context.txt
$

For your purpose modify the find command like that :
Code:
eval find "$dir" ${find_subdir} -type f "'(' '('" ${find_names} " ')' -mtime +300 -print ')'" | xargs rm

Jean-Pierre.

Last edited by aigles; 08-15-2010 at 06:27 AM..
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

find command to exclude directories

Howdy I have this directory structure ... eep eepaptest eepfatest eepgltest eep.old eeppoptest ehf ehfaptest ehfgltest ehp ehpgltest I want to find files in these directories, but I want to exclude eep, ehf & ehp. Cany anyone help with the correct command ?? (1 Reply)
Discussion started by: SmurfGGM
1 Replies

2. Shell Programming and Scripting

Find but exclude directories

Hello, I have a line in my script to find the files changed in the last 24 hours. It is as below: find /home/hary -type f -mtime -1 I now want to exclude a directory named "/home/hary/temp/cache" from the above find command. How do I add it to my script? Any help is appreciated. ... (9 Replies)
Discussion started by: tadi18
9 Replies

3. UNIX for Dummies Questions & Answers

How to Exclude multiple directories from find command?

Hi, Can some one help me how to exclude multiple directories using find command.. I have the directory structure below. /a/a1/b1 /a/c1/c2 /a/d1/d2/d3 I want to exlcude a1,c2and d3 from the above using find,can some one suggest pls.. thanks in advance... Use code tags... (1 Reply)
Discussion started by: jagadish_gaddam
1 Replies

4. Shell Programming and Scripting

Perl exclude directories in command line

Hi, I use find command to list all the files in a directory and its sub-directories, but the problem is to exclude certain directories during search. Can i give the directory names in command line to skip them and search rest of the directories? For example i have directories: test ../test1... (1 Reply)
Discussion started by: nmattam
1 Replies

5. UNIX for Dummies Questions & Answers

Find command to exclude directories and setup alias or script?

Hi, Firstly - sorry for the duplicate my other post looked like i was posting a how to for people. But i am wanting some help :P I want to search from / to find files and exclude my mounted ntfs drives. I have found this thread (Which I can't post the URL to until i have 5 posts) it's... (4 Replies)
Discussion started by: mightymouse2045
4 Replies

6. UNIX for Dummies Questions & Answers

Using grep command to find the pattern of text in all directories and sub-directories.

Hi all, Using grep command, i want to find the pattern of text in all directories and sub-directories. e.g: if i want to search for a pattern named "parmeter", i used the command grep -i "param" ../* is this correct? (1 Reply)
Discussion started by: vinothrajan55
1 Replies

7. AIX

Exclude Directories in my tar command

Hi, im having some issues after i execute the next command: tar -cvf /varios/restore/test.tar -X /jfma/test1/excludefile /jfma | gzip -c > /varios/restore/test.tar.gz this creates the desired "test.tar.gz" file, but whe i try to open it it says "tar: 0511-164 There is a media read or write... (6 Replies)
Discussion started by: blacksteel1988
6 Replies

8. Shell Programming and Scripting

Exclude directories in FIND command

Can you please help tweak the below command to exclude all directories with the name "logs" and "tmp" find . -type f \( ! -name "*.tar*" ! -name "*.bkp*" \) -exec /usr/xpg4/bin/grep -i "user_1" /dev/null {} + >result.out bash-3.2$ uname -a SunOS mymac 5.10 Generic_150400-26 sun4v sparc sun4v... (9 Replies)
Discussion started by: mohtashims
9 Replies

9. Shell Programming and Scripting

Need Tar Ball command to exclude directories

Hi, uname -a SunOS mymac 5.11 11.2 sun4u sparc SUNW,SPARC-Enterprise I need to tar a folder /tmp/moht but do not want these three folders to be included in the tar file -> savejpg, bmpsave and imgsave I tried --exclude, -path, -not options but it says bad option Can you help me with... (3 Replies)
Discussion started by: mohtashims
3 Replies
All times are GMT -4. The time now is 02:38 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy