how do i exclude the current directory when using find?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how do i exclude the current directory when using find?
# 1  
Old 04-24-2007
how do i exclude the current directory when using find?

i want to compile a list of files in all sub directories but exclude the current directory.

the closest i could get was to search 'only' the current directory, which is the opposite of what i wanted.

Code:
find . ! -name . -prune

# 2  
Old 04-24-2007
Code:
find `ls -l | awk ' /^d/ { print $NF } '` -name "..." -print

# 3  
Old 04-24-2007
thank you, with a slight modification so i only found files '- type f', that worked a treat.

cheers
# 4  
Old 04-24-2007
just one more thing.

what does the /^d/ do? i know ^ means 'start from the beginning' but what about the d?

Code:
find `ls -l | awk ' /^d/ { print $NF } '` -type f -name "*" -print

# 5  
Old 04-24-2007
Quote:
Originally Posted by mjays
just one more thing.

what does the /^d/ do? i know ^ means 'start from the beginning' but what about the d?

Code:
find `ls -l | awk ' /^d/ { print $NF } '` -type f -name "*" -print

Code:
$ ls -l
total 120
drwxr-xr-x   2 training staff        512 Apr 24 15:38 an
drwxr-xr-x   2 training staff        512 Apr 24 15:38 bn
-rw-r--r--   1 training staff        446 Apr 19 16:48 dif
-rw-r--r--   1 training staff         63 Apr 24 12:10 f
-rw-r--r--   1 training staff         38 Apr 10 11:12 f2

d - directory

/^d/ { print $NF } Print the last field of line starting with "d"

In the above listing an and bn are directories

You dont need -name "*" if you want the list of all files
Code:
find `ls -l | awk ' /^d/ { print $NF } '` -type f -print


Last edited by anbu23; 04-24-2007 at 09:13 AM..
# 6  
Old 04-24-2007
Quote:
Originally Posted by mjays
i want to compile a list of files in all sub directories but exclude the current directory.
[...]
Code:
find ./*/ -name ...

# 7  
Old 04-24-2007
Quote:
Originally Posted by anbu23
Code:
$ ls -l
total 120
drwxr-xr-x   2 training staff        512 Apr 24 15:38 an
drwxr-xr-x   2 training staff        512 Apr 24 15:38 bn
-rw-r--r--   1 training staff        446 Apr 19 16:48 dif
-rw-r--r--   1 training staff         63 Apr 24 12:10 f
-rw-r--r--   1 training staff         38 Apr 10 11:12 f2

d - directory

/^d/ { print $NF } Print the last field of line starting with "d"

In the above listing an and bn are directories

You dont need -name "*" if you want the list of all files
Code:
find `ls -l | awk ' /^d/ { print $NF } '` -type f -print

thanks, it seems obvious now that ^d meant directories. and of course i don't need "*" when using -type f, again, very obvious too - in hindsight that is.

cheers.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How-To Exclude Directory in find command

How can i tweak the below find command to exclude directory/s -> "/tmp/logs" find . -type f \( ! -name "*.log*" ! -name "*.jar*" \) -printNote: -path option/argument does not work with the version of find that i have. bash-3.2$ uname -a SunOS mymac 5.10 Generic_150400-26 sun4v sparc sun4v (7 Replies)
Discussion started by: mohtashims
7 Replies

2. UNIX for Dummies Questions & Answers

cmd find: exclude directory when using option -depth

hello, i want to use "-depth" in command "find" and want to exclude a directory. the find command should work in HP-UX and Linux. i see in the find man page: -prune If -depth is not given, true; do not descend the current directory. If -depth is given, false; no effect. -depth... (3 Replies)
Discussion started by: bora99
3 Replies

3. UNIX for Dummies Questions & Answers

find command to look for current directory only

i have this find command on my script as: for i in `find $vdir -name "$vfile" -mtime +$pday` the problem with this code is that the sub-directories are included on the search. how do i restrict the search to confine only on the current directory and ignore the sub-directories. please advise.... (7 Replies)
Discussion started by: wtolentino
7 Replies

4. Shell Programming and Scripting

SunOS: How to exclude directory in find command?

Hi All, First my OS version is: ksh:0$ uname -a SunOS 5.9 Generic_122300-48 sun4u sparc SUNW,Sun-Fire-V440 I want to exclude the following DIR(./country111) in my search pattern: ksh:0$ find . -name "*.tar" ./country111/COUNTRY_BATCH-801.tar ./country111/COUNTRY_BATCH-802.tar... (3 Replies)
Discussion started by: saps19
3 Replies

5. Shell Programming and Scripting

Exclude a directory in 'find'

Hi, I'm in the process of writing a shell script which will be ran under cron hourly and will check for files of specific age in my ftp folder, then moves those over inside a folder called "old" (which is within the ftp dir). But, I'm unable to figure out how to exclude the "old" folder when... (1 Reply)
Discussion started by: mutex1
1 Replies

6. Shell Programming and Scripting

Find files ONLY in current directory

Hello all, I am having a hard type in figuring out how to only gather certain files in the current directory without exploring its subdirectories. I tried: find . -name "*.ksh" -prune this also returns ksh files from lower subdirectories. I also tried find . -ls -name "*.ksh" This also... (8 Replies)
Discussion started by: gio001
8 Replies

7. Shell Programming and Scripting

How to exclude top level directory with find?

I'm using bash on cygwin/windows. I'm trying to use find and exclude the directory /cygdrive/c/System\ Volume\ Information. When I try to use the command below I get the error "rm: cannot remove `/cygdrive/c/System Volume Information': Is a directory. Can someone tell me what I am doing... (3 Replies)
Discussion started by: siegfried
3 Replies

8. UNIX for Dummies Questions & Answers

how to stop to current directory using find

Hello, I just want to ask the following use of find command: 1. how can I find files only to the current directory? 2. how can I find files to directories and all subdiretories (are this include soft links?) but will not go to other mountpoints that is under that mountpoint. Im combining... (1 Reply)
Discussion started by: james_falco
1 Replies

9. UNIX for Dummies Questions & Answers

find directory not including current

Using Solaris 8, I've forgotten how to exclude the current directory in the find results. find . -type d ! -name "*.CAP" I want every directory that does not match the *.CAP pattern, except the current directory. (2 Replies)
Discussion started by: dangral
2 Replies

10. UNIX for Dummies Questions & Answers

using find command only in current directory

I am trying to use the find command to find files in the current directory that meet a certain date criteria. find . -type -f -mtime +2 However, the above also checks the directories below. I tried -prune, but that seems to ignore this directory completely. I read about using -path w/... (5 Replies)
Discussion started by: jliebling
5 Replies
Login or Register to Ask a Question