How to Find Files other than specified directory ?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to Find Files other than specified directory ?
# 1  
Old 04-18-2013
How to Find Files other than specified directory ?

Hi All,

I am creating one script to Archive the older log files to Archive folder and deleting older files.

For example below path contains different sub folders. So searching for log files older than 2 days then zip and moving to Archive directory in the same directory.

Source files :-
Code:
 /opt/findev1/dfsdev1/dfsapp/Finacle/FC10.5.02/app/CDCI_LOGS/

Dest Files:
Code:
/opt/findev1/dfsdev1/dfsapp/Finacle/FC10.5.02/app/CDCI_LOGS/archive

Code:
Arch_days=2
find . -name "*.log" -mtime +$Arch_days -exec gzip -f {} \;
find . -name "*.evt" -mtime +$Arch_days -exec gzip -f {} \;
find . -name "*.trc" -mtime +$Arch_days -exec gzip -f {} \;
find . -name "*.debug" -mtime +$Arch_days -exec gzip -f {} \;
if [ ! -d $DEST_PATH ]
then
mkdir $DEST_PATH
chmod 777 $DEST_PATH
fi
 
#Copying them to the same directory in the destication path.
find . -type f -name "*.gz" | cpio -pmd $DEST_PATH
find . -name "*.gz" -exec rm -ef {} \;


so in the aboe line it also deleting the files from Archive direcotry also.. How to specify find command to search and remove files other than Archive dir ?
Please suggest me using of it.

Thanks,
Venkat Vadlamudi.

Last edited by jim mcnamara; 04-19-2013 at 12:04 AM.. Reason: code tags
# 2  
Old 04-19-2013
Instead of ".", which is short for "the currect directory" use a real path. You can even put this into a variable like you did with the archiving time. For instance:

Code:
SearchPath="/opt/findev1/dfsdev1/dfsapp/Finacle/FC10.5.02/app/CDCI_LOGS"

find "$SearchPath" -name "*.log" -mtime +$Arch_days -exec gzip -f {} \;

I hope this helps.

bakunin
# 3  
Old 04-19-2013
How to prevent find from descending into subdirectories depends on its implementation.
For GNUs find the option is -maxdepth, in some other implementations there is the -prune option.

Edit: I think I misread your post. You try to exclude the Archive directory from the search but include the other subdirectories.
One way to achive this using GNU find is the -wholename option:
Code:
$ find . -name c
./b/c
./a/c
$ find . -name c ! -wholename "./b/*"
./a/c
$


Last edited by cero; 04-19-2013 at 11:43 AM..
# 4  
Old 04-19-2013
Code:
find . -name archive -prune -o ...

# 5  
Old 04-19-2013
Oops, i misread your question. You should use the "-prune"-option, as pointed out by cero and MadeInGermany. "-maxdepth" might be a nice feature, but even if your find supports it you should not use it if you want to write portable scripts.

I hope this helps.

bakunin
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

find Files in sub-directory

Hi Just want to ask, Is it possible to find a file from a directory up to its sub-directories? Thanks, cmarzan (10 Replies)
Discussion started by: cmarzan
10 Replies

2. UNIX for Advanced & Expert Users

Find all files in the current directory excluding hidden files and directories

Find all files in the current directory only excluding hidden directories and files. For the below command, though it's not deleting hidden files.. it is traversing through the hidden directories and listing normal which should be avoided. `find . \( ! -name ".*" -prune \) -mtime +${n_days}... (7 Replies)
Discussion started by: ksailesh1
7 Replies

3. UNIX for Dummies Questions & Answers

How to find and copy files from one directory to another

Ok i have three directories Destination - /u/dir1 (has subdirectories dir2 which also has subdirectory dir3) Source1 - /u/test/files/dir1/dir2/dir3 Source2 - /u/out/images/dir1/dir2/dir3 What i would like to do is copy everything from Source1 and Source2 into the Destination directory.... (3 Replies)
Discussion started by: ziggy25
3 Replies

4. UNIX for Advanced & Expert Users

How can I find out the open files in a directory

Hello all, Is there any other way of finding the open files in a directory apart from command 'lsof'. thanks (3 Replies)
Discussion started by: joshi123
3 Replies

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

6. UNIX for Dummies Questions & Answers

Find files and display only directory list containing those files

I have a directory (and many sub dirs beneath) on AIX system, containing thousands of file. I'm looking to get a list of all directory containing "*.pdf" file. I know basic syntax of find command, but it gives me list of all pdf files, which numbers in thousands. All I need to know is, which... (4 Replies)
Discussion started by: r7p
4 Replies

7. UNIX for Dummies Questions & Answers

Need help to find the files under a directory

Hi, I wanted to delete all the files under a directory "/apps/tmp/" which are two weeks older. But i should not delete the sub-directories and the contents of sub-directories. I also have searched in forum and found the following command, find . \( ! -name . -prune \) -mtime +13 -print ... (8 Replies)
Discussion started by: Sheethal
8 Replies

8. UNIX for Dummies Questions & Answers

How to find a word in a all the files in a Directory??

I want to find a specific word present in all the files ina directory....Please tell me the command to be used?? Thanks (6 Replies)
Discussion started by: shikhakaul
6 Replies

9. Shell Programming and Scripting

Find files in directory

Hi all I want to find a particular file type lets say .abc under /home/oracle/, the file name is start with 'D' and followed by ddmmyyyy date format, the file name should look like this D19092008.abc To my question, how can i perform the searching from the date 19/09/2008 to 29/09/2008. The... (3 Replies)
Discussion started by: coldstarhk
3 Replies

10. Filesystems, Disks and Memory

find the 5o largest files in a directory

I'm trying to find the 50 largest file in a directory named /sasdb and its' subdirectories. I'm using the find command and a pipe to awk Not sure if I'm actually getting the largest files from this directory and its subdirectories. Here is the code I used... find /sasdb -ls | awk '{print... (8 Replies)
Discussion started by: igidttam
8 Replies
Login or Register to Ask a Question