find restricted search to some directories


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting find restricted search to some directories
# 1  
Old 01-03-2011
find restricted search to some directories

Hi,

I would like to look for files in certain sub-directories in order to avoid looking into possibly big ones.
The subdirectories to search are created monthly following the convention YYYYMM.

I've tried this:
Code:
find . \( ! -name 2[0-9][0-9][0-9][0,1][0-9] -prune \) -o -type f -print

expecting to retrieve only Y and Z out of the 3 examples below
Code:
./a/X01012/X
./a/201012/Y
./a/b/201011/Z

but that command doesn't return anything.

How should i write it ?

Thanks for your help

Moderator's Comments:
Mod Comment Please use code tags when posting data and code samples!

Last edited by Franklin52; 01-03-2011 at 05:53 AM..
# 2  
Old 01-03-2011
I m not clear what you want
however if you search only named within `2[0-9][0-9][0-9][0,1][0-9]` direcs..
maybe you can use this like Smilie

Code:
for i in `find -name "2[0-9][0-9][0-9][0,1][0-9]" -type d`; do find $i -type f ; done

# 3  
Old 01-03-2011
This works indeed (with a '.' after the first find though).

May be i'm being picky but isn't just 1 single call to find necessary ?
# 4  
Old 01-03-2011
Edit: Removed previously posted code.

You don't see any output from your original command because you're pruning the starting (.) directory.

You can exclude every directory not named 2[0-9][0-9][0-9][0,1][0-9] only for a known number of levels,
because otherwise you will also exclude the parent of the directories you're interested in.

---------- Post updated at 12:34 PM ---------- Previous update was at 12:13 PM ----------

Quote:
Originally Posted by m69w
[...]
May be i'm being picky but isn't just 1 single call to find necessary ?
You can use something like this, but it will fail if there are white spaces or other special characters in the directory names
or if the list returned exceeds the ARG_MAX limit of your OS.

Code:
find $(find . -name '2[0-9][0-9][0-9][01][0-9]' -type d) -type f


Last edited by radoulov; 01-03-2011 at 07:31 AM..
# 5  
Old 01-03-2011
Thanks Radoulov, your explanation makes sense. Would some output be expected with the following set then ?

./201012/a/X01012/X
./201012/a/201012/Y
./201011/a/b/201011/Z
# 6  
Old 01-03-2011
I don't understand what you mean, could you please elaborate further?
# 7  
Old 01-03-2011
I mean you're probably right about the reason for the absence of output so i just figured a starting directory matching the regular expression should not be pruned and therefore the command should return something. I've tried it and it's not the case.

Never mind, i'll use 2 find commands as suggested by ygemici or in your last post. Thank you both for your help
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to use a grep search to search for a specific string within multiple directories?

Lets say I have a massive directory which is filled with other directories all filled with different c++ scripts and I want a listing of all the scripts that contain the string: "this string". Is there a way to use a grep search for that? I tried: grep -lr "this string" * but I do not... (3 Replies)
Discussion started by: Circuits
3 Replies

2. Shell Programming and Scripting

Search: find current line, then search back

Hello. I want to find a line that has "new = 0" in it, then search back based on field $4 () in the current line, and find the first line that has field $4 and "last fetch" Grep or Awk preferred. Here is what the data looks like: 2013-12-12 12:10:30,117 TRACE last fetch: Thu Dec 12... (7 Replies)
Discussion started by: JimBurns
7 Replies

3. Shell Programming and Scripting

Search for file extensions in the given directories

Hey guys, I'm lost... I need to make a script that will work in this way: ./script.sh -e sh /usr/bin /home/student this script will result in this output: amuFormat.sh /usr/bin gettext.sh /urs/bin perfect.sh /home/student the parameter -e <ext> gives you which... (2 Replies)
Discussion started by: Miki1579
2 Replies

4. UNIX for Advanced & Expert Users

Search file in all directories.

Hi colleagues, I need to search one file in all dierctories, i have O.S. AIX 5.3, my file began with cc, the others caracters i unknow. Then i can to search one string in file in all dierctories. Thank you for advanced. (8 Replies)
Discussion started by: systemoper
8 Replies

5. 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

6. Shell Programming and Scripting

How to find 777 permisson is there or not for Directories and sub-directories

Hi All, I am Oracle Apps Tech guy, I have a requirement to find 777 permission is there or not for all Folders and Sub-folders Under APPL_TOP (Folder/directory) with below conditions i) the directory names should start with xx..... (like xxau,xxcfi,xxcca...etc) and exclude the directory... (11 Replies)
Discussion started by: gagan4599
11 Replies

7. UNIX for Dummies Questions & Answers

Using "find" in restricted directories

Hi, I would like to know is there any way to find/search filenames or directories inside the directories which has resticted permission. When we use normal "find" command it returns "permission denied" message for the root directories or directories with restricted permissions. Thanks (2 Replies)
Discussion started by: forstudy3
2 Replies

8. Shell Programming and Scripting

How to search through directories and sub dir

Im working on a project that basically imitates the find and whereis commands. The program will take in a file name or regular expression and, starting with the current directory search downwards and match any files with that pattern and prints the path name. I don't understand how to do this... (5 Replies)
Discussion started by: new2C
5 Replies

9. Shell Programming and Scripting

how to search directories

Hello everybody, i'm dummy for unix but i want to learn something. i want to search the working directory and its subdirectories( all ) to find the files which are more than 1024 bytes. So which commands must i learn? Thanks to all. (13 Replies)
Discussion started by: redbeard_06
13 Replies

10. Shell Programming and Scripting

script to search all the directories

Hi there, Is there any command or script to search all the directories for duplicated files? Thanks, Abrahim (3 Replies)
Discussion started by: abk
3 Replies
Login or Register to Ask a Question