Maxdepth option of find command not working


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Maxdepth option of find command not working
# 1  
Old 04-21-2015
Bug Maxdepth option of find command not working

Can you please figure out what is the issue here

Code:
$ find . -maxdepth  1 -type f -size 0 -print
find: bad option -maxdepth


please find the OS details
Code:
$ uname -a
HP-UX g5u1216 B.11.31 U ia64 2614088426 unlimited-user license

Moderator's Comments:
Mod Comment Use code tags, thanks.

Last edited by zaxxon; 04-21-2015 at 11:48 AM..
# 2  
Old 04-21-2015
maxdepth is a GNU-ism, try -depth instead.

As far as I can tell POSIX compliance for find does not support -maxdepth or -mindepth as arguments to the find command.

find
# 3  
Old 04-21-2015
The find -depth primary produces a post-order walk of the file hierarchy instead of the default pre-order walk; it has no effect on how deep find goes as it walks the hierarchy. To get what TomG requested, just using standard find primaries, try:
Code:
find . \( -type d ! -name . -prune \) -o \( -type f -size 0 -print \)

or if the name of the directory being searched was specified by a variable:
Code:
find "$dir" \( -type d ! -name "$dir" -prune \) -o \( -type f -size 0 -print \)

This User Gave Thanks to Don Cragun For This Post:
# 4  
Old 04-23-2015
You can skip -type d before the ! -name . -prune.
(And then it becomes clear you don't need the brackets.)
Just seeing you must switch the order, too:
Code:
find . -type f -size 0 -print -o ! -name . -prune


Last edited by MadeInGermany; 04-24-2015 at 11:47 AM.. Reason: switch order
# 5  
Old 04-24-2015
Quote:
Originally Posted by Don Cragun
The find -depth primary produces a post-order walk of the file hierarchy instead of the default pre-order walk; it has no effect on how deep find goes as it walks the hierarchy. To get what TomG requested, just using standard find primaries, try:
Code:
find . \( -type d ! -name . -prune \) -o \( -type f -size 0 -print \)

or if the name of the directory being searched was specified by a variable:
Code:
find "$dir" \( -type d ! -name "$dir" -prune \) -o \( -type f -size 0 -print \)


Hi Don,

Can you please tell me why -o is used. I am confused,because both conditions in the brackets have to be satisfied right. So can we use an 'and' condition.

Thank You
# 6  
Old 04-24-2015
From the (Linux) man page:
Quote:
the -prune action itself returns true, so the following -o ensures that the right hand side is evaluated only for those directories which didn't get pruned
This User Gave Thanks to CarloM For This Post:
# 7  
Old 04-24-2015
Quote:
Originally Posted by TomG
Hi Don,

Can you please tell me why -o is used. I am confused,because both conditions in the brackets have to be satisfied right. So can we use an 'and' condition.

Thank You
I have a general pattern that I remember that works for lots of cases. Your problem is simpler than many and in this specific case, I should have given you the much simpler command:
Code:
find . ! -name . -prune -type f -size 0

or:
Code:
find "$dir" ! -name "$dir" -prune -type f -size 0

This User Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

What is wrong with 'find . -maxdepth 1 -ctime -7 -type f'?

Have you tried running the command below? On the same RHEl 6.8 or 6.6. It will give you different output. find . -maxdepth 1 -ctime -7 -type f rpm -qa|grep find findutils-4.4.2-9.el6.x86_64 # cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.8 (Santiago) # (6 Replies)
Discussion started by: invinzin21
6 Replies

2. Shell Programming and Scripting

Maxdepth command not working in AIX.Need alternative solution for this command

Hi All, I am trying to select 30 days older files under current directory ,but not from subdirectory using below command. find <Dir> -type f -mtime + 30 This command selecting all the files from current directory and also from sub directory . I read some documention through internet ,... (1 Reply)
Discussion started by: kommineni
1 Replies

3. Shell Programming and Scripting

Please suggest me a better option than FIND command

Hi All, Could you please help me in searching files in a better way satisfying the below conditions I want to search files in a path whose access time is more than 5min and less than 60 min and whose Byte size is greater than zero For this, i am using the below command, but it is... (2 Replies)
Discussion started by: sparks
2 Replies

4. Shell Programming and Scripting

daystart option not working in find command

Hi, I am trying to list all the files created / modified today in a directory. With reference to this thread, https://www.unix.com/shell-programming-scripting/20324-capture-all-today-files.html I have used the below command to list all the files modified today. find . -daystart -type f... (8 Replies)
Discussion started by: arunkumarmc
8 Replies

5. HP-UX

who command option not working

Running HP 11.31 on a HP3600. But when I log in as a user the who command works but if I use an option like "who -m" I get nothing. Any thoughts on what is causing this problem. (11 Replies)
Discussion started by: KMRWHUNTER
11 Replies

6. Shell Programming and Scripting

help with find command and prune option

Hi I have a directory say mydir and inside it there are many files and subdirectories and also a directory called lost+found owned by root user I want to print all files directories and subdirectorres from my directory using find command except lost+found If i do find . \( -name... (3 Replies)
Discussion started by: xiamin
3 Replies

7. UNIX for Dummies Questions & Answers

Solaris find without maxdepth

Hi, I am using Solaris 5.8 I searched online, the find command has an option called maxdepth which can be used to limit the number of directories find will look into. find . -maxdepth 2 -type f When I run the above command in solaris, I get an error find: bad option -maxdepth find:... (2 Replies)
Discussion started by: Leion
2 Replies

8. UNIX for Advanced & Expert Users

For ls command,-r option is not working on OSF1

There r 2 servers. Lets call them S1 and S2.. S1 is OSF1 and S2 is SunOS.. One directory of S2 is mounted on S1. say abc/xyz There is one application which continuously put xml files in that directory (on S2). If we give command “ls -lrt” on S2 it gives proper output.. (i.e. gives list... (1 Reply)
Discussion started by: asmita
1 Replies

9. Shell Programming and Scripting

-s option to find object exists not working.

is there a direct command to find whether directory is empty, -s option doesn't seem to work. Mark. (2 Replies)
Discussion started by: markjason
2 Replies

10. Solaris

Why does the 'ps' command with -u option not working?

How can I use the 'ps' command to view current sessions but only for a given process/user, with the -u parm? In older versions of Unix, this used to work, but not in Sun Solaris. Thanks (4 Replies)
Discussion started by: ElCaito
4 Replies
Login or Register to Ask a Question