Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Find commmand returning search path with the result set Post 302948343 by kraljic on Monday 29th of June 2015 06:01:01 AM
Old 06-29-2015
Find commmand returning search path with the result set

OS Platform : Oracle Linux 6.5

We are creating a shell script to purge old log files . It uses find command with rm in it.

The syntax is

find <Path of Log Directory> -exec rm -fr {} \;

Example:

find /tmp/test3 -exec rm -fr {} \;


For rm command , we use -r option to remove directories because it is not just files we want to delete. We have to purge directories too. Because sometimes our application creates directories for certain type of issues. For example, when the application crashes, it creates a 'Core Dump' directory by which several files are clubbed together and placed in a coreDump directory . Example coreDump_29_June_2015_11_05_32.

But, I have noticed that, when we try to search for files and directories in the search path, find command is returning the search path too in the result set. For example , I am trying to find all files and directories within /tmp/test3 directory . But, find is returning "/tmp/test3" in the result set too (shown in red below )

Since find is falsely returning the search path itself, rm is trying to remove it. But, rm is trying to delete a directory called
"/tmp/test3" within /tmp/test3 . ie. rm /tmp/test3/tmp/test3 which doesn't exist. So, it is harmless. But, how can I prevent the find command from returning the search path itself (the line shown in red below).

Code:
$ mkdir test3
$
$
$ cd test3
$
$ pwd
/tmp/test3
$ touch abc{1,2,3}.txt
$

## BTW.. Following command will work even without -print option

$ find /tmp/test3 -print
/tmp/test3
/tmp/test3/abc2.txt
/tmp/test3/abc3.txt
/tmp/test3/abc1.txt

$ find /tmp/test3 -exec rm -f {} \;
rm: cannot remove `/tmp/test3': Is a directory
$
$ ls
$
$ ls -lt
total 0
$
$ find /tmp/test3 -exec rm -fr {} \;
find: `/tmp/test3': No such file or directory
$
$ ls
$
$ pwd
/tmp/test3

 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

find command not returning any result

I am looking for all the header files (*.h).. which as per documentation of the UNIX system shouldbe there. I am using find / -name *.h -print But it does't give anything. My question is under what condition the "find" condition will fail to find the file? What is the work around. ... (4 Replies)
Discussion started by: rraajjiibb
4 Replies

2. UNIX for Dummies Questions & Answers

Question about Restricting Search path of FIND to current directory

Hi, By default FIND command searches for matching files in all the subdirectories within the specified path. Is there a way to restrict FIND command's search path to only the specified directory and NOT TO scan its subdirectories. Any help would be more than appreciated. Thanks and Regards (2 Replies)
Discussion started by: super_duper_guy
2 Replies

3. AIX

The shell script is not returning proper result

Can anybody pls look into this script and tell me where I went wrong. After running this script, it is showing like "Trying to overlay current working directory ABORT!!!" :-( ARGCNT=$# if then echo "Two parameters are needed for this shell " echo "Please try again with... (1 Reply)
Discussion started by: clnsharma123
1 Replies

4. UNIX for Dummies Questions & Answers

how to use find commnad to show only path of the result

Hello all say i like to find files i do : find . -name "*.txt" but if i like to find ( and print out ) only the path's where the files are ( the *.txt files ) what can i add to the find command ? (1 Reply)
Discussion started by: umen
1 Replies

5. UNIX for Dummies Questions & Answers

PATH set but I can't find where!!!!

Hi, Can anybody help with this? When I log into my user account on my box via ssh and then instantly perform an env command I see that my path has been set as follows: PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin My user account uses the ksh shell. In my home directory there is no... (7 Replies)
Discussion started by: Donkey25
7 Replies

6. UNIX for Advanced & Expert Users

transporting scripts onto sloaris, executing it and returning the result to windows

Hi, I have to write a windows XP program, that would generate a Solaris Script, which would then be transported to Solaris, executed, the execution result then needs to be returned to the XP program. For transporting the file i was thinking of following FTP (admins rejected it) or File share on... (1 Reply)
Discussion started by: 00262881
1 Replies

7. Shell Programming and Scripting

os.path.isdir is always returning false

Just started with learning python and tried something, most people here would call more than simple. I just wanted to list all directories within my main directory. So I user the following code: #!/usr/bin/env python import os if os.path.isdir("/home/testaccaunt/public_html"): ... (8 Replies)
Discussion started by: medic
8 Replies

8. Shell Programming and Scripting

How to find duplicate commands in the search path?

I wanted to see if there is any duplicate of a specific command in the command search path. The following code will list all copies of "openssl" in the command search path. find `printenv PATH | sed "s/:/ /g"` -maxdepth 1 -name openssl However, the above code would fail if the search path... (9 Replies)
Discussion started by: LessNux
9 Replies

9. Shell Programming and Scripting

bash: How to reuse the search result of "find"

find . -type f -print0 | xargs -0 chmod 600 find . -type f On bash, I would like to pass the search result of "find" to another command as well as to the standard output. The above code performs the same search twice -- once for "xargs -0 chmod" and another for stdout. I would like to... (5 Replies)
Discussion started by: LessNux
5 Replies

10. Shell Programming and Scripting

Find a file and set path in variable?

Hi Folks - I was wondering if you could help convert batch code in Linux? For instance, I use the following piece of code in DOS to find a file/executable, and then the FULL path as a variable. ::-- If startMaxl.exe exists, set full path --:: for %%D in (c d e f g h i j k l m n o p q r s t... (4 Replies)
Discussion started by: SIMMS7400
4 Replies
FINDRULE(1)						User Contributed Perl Documentation					       FINDRULE(1)

NAME
findrule - command line wrapper to File::Find::Rule USAGE
findrule [path...] [expression] DESCRIPTION
"findrule" mostly borrows the interface from GNU find(1) to provide a command-line interface onto the File::Find::Rule heirarchy of modules. The syntax for expressions is the rule name, preceded by a dash, followed by an optional argument. If the argument is an opening parenthesis it is taken as a list of arguments, terminated by a closing parenthesis. Some examples: find -file -name ( foo bar ) files named "foo" or "bar", below the current directory. find -file -name foo -bar files named "foo", that have pubs (for this is what our ficticious "bar" clause specifies), below the current directory. find -file -name ( -bar ) files named "-bar", below the current directory. In this case if we'd have omitted the parenthesis it would have parsed as a call to name with no arguments, followed by a call to -bar. Supported switches I'm very slack. Please consult the File::Find::Rule manpage for now, and prepend - to the commands that you want. Extra bonus switches findrule automatically loads all of your installed File::Find::Rule::* extension modules, so check the documentation to see what those would be. AUTHOR
Richard Clamp <richardc@unixbeard.net> from a suggestion by Tatsuhiko Miyagawa COPYRIGHT
Copyright (C) 2002 Richard Clamp. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
File::Find::Rule perl v5.18.2 2011-09-19 FINDRULE(1)
All times are GMT -4. The time now is 06:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy