Recursive remove files


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Recursive remove files
# 1  
Old 03-21-2016
Recursive remove files

Hi folks,

I have several directories with multiple files of all kinds in them. For example
directory ###### contains:
Code:
######B1.TIF
######B2.TIF
...........
######B8.TIF
######.tar
######.txt
######.jpg
######r
######r.hdr
######rSVD
######rSVD.hdr
######t
######t.hdr

How do I remove recursively through all directories particular files (*r and *t) with their headers without hurting the rest of the files?
Code:
rm -r {*r, *r.hdr, *t, *t.hdr}

Thanks
# 2  
Old 03-21-2016
The * glob must match immediately, i.e. cannot be used with the -r option.
In bash you can try say the current directory and sub-directories and sub-sub-directories
Code:
rm {.,*,*/*}/{*[rt],*[rt].hdr}

and ignore the "not found" errors, or use rm -f.
Test with echo first, then replace it with rm!
The more advanced method is with find
Code:
find . -type f \( -name "*[rt]" -o -name "*[rt].hdr" \) -exec rm {} +

Test with echo first, then replace it with rm!
# 3  
Old 03-21-2016
The complication is that .txt and .tar files need to stay.
This command selects also the .tif, .txt and .tar files that are necessary.

Thanks
# 4  
Old 03-21-2016
Are the files named exactly r and t? Then simply remove the leading *.
Otherwise, with find you can give exceptions
Code:
find . -type f \( -name "*[rt]" -o -name "*[rt].hdr" \) \! -name "*.tar" \! -name "*.txt" -exec rm {} +

Or is there no dot before them? Then the exceptions are
Code:
find . -type f \( -name "*[rt]" -o -name "*[rt].hdr" \) \! -name "*.*[rt]" -exec rm {} +

# 5  
Old 03-21-2016
I listed an example with all the files with their extensions in the original message.
The files to be removed end with r without dot and others end in t without dot.

Thank you
# 6  
Old 03-21-2016
Then my last suggestion should work.
The following variant might be a little more efficient
Code:
find . -type f \( -name "*[rt]" \! -name "*.*" -o -name "*[rt].hdr" \) -exec rm {} +

Read the sub expression in brackets as: if name is *[rt] and not name is *.*, or name is *[rt].hdr

Last edited by MadeInGermany; 03-21-2016 at 04:13 PM..
# 7  
Old 03-21-2016
This will delete the .txt, .tar and .tif files as well and these have to survive.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. HP-UX

Recursive copy of Folders with files

Dear All, I will appreciate any help received. Our system is running on hpux v1 My problem is as follows: We have many customer folders with name fd000100, fd000101 and so on e.g. (Testrun)(testsqa):/>ll /TESTrun/fd000100 total 48 drwxrwx--- 2 fq000100 test 96 Jun 27 2004... (17 Replies)
Discussion started by: mhbd
17 Replies

2. UNIX for Advanced & Expert Users

Recursive grep with only certain types of files

Can I please have some ideas on how to do a recursive grep with certain types of files? The file types I want to use are *.c and *.java. I know this normally works with all files. grep -riI 'scanner' /home/bob/ 2>/dev/null Just not sure how to get it to work *.c and *.java files. (5 Replies)
Discussion started by: cokedude
5 Replies

3. Shell Programming and Scripting

Recursive looping through files and directories

hi; i need a script which will go to all directories and subdirectories and print the filenames as follow; here i m printing only files listing in current directory reason i m doing this is coz i want to perform some operations according to filename achieved so cant use find command;... (4 Replies)
Discussion started by: ajaypadvi
4 Replies

4. Shell Programming and Scripting

Command running for all recursive files

hi, I have installed ACL(access control list) in my ubuntu box in order to know which all are the users having permissions to read and write the files; If u run the command like; $getfacl /root/ It will give following output: # file: root/ # owner: root # group: root user::rwx... (2 Replies)
Discussion started by: ajaypadvi
2 Replies

5. UNIX for Dummies Questions & Answers

recursive delete files from txt file or?

i have a txt file of image names that have to be deleted in pwd how can i use the txt file to delete the files in pwd and is it possible?--i might be able to import the txt files into a spreadsheet ahd same it as a csv file. i want it to be done recursive lly --what i mean is teh sysem goes thru... (4 Replies)
Discussion started by: plener
4 Replies

6. Shell Programming and Scripting

recursive saving of files and folders

Hi all I have a bash script, that loops through a folders files and all subfolders for .shtml files. It looks for a string and replaces it, creating a backup of the original file. This all works great, but I'd like, when the backup is done, that the files are then also created in their... (4 Replies)
Discussion started by: terrid
4 Replies

7. UNIX for Dummies Questions & Answers

Recursive remove files with exception

Hi, I want to remove a directory recursively except the inside directories calles .SYNC (designsync dirs) I am looking for something like: \rm -rf < find . * | grep -v .SYNC The find works ok but I do not know how to redirect it. Please help. Regards, Ziv (1 Reply)
Discussion started by: zivsegal
1 Replies

8. Programming

Recursive remove directory.

What is the best way to completely remove dir with it's content ??? rmdir deletes only EMPTY dirs as i know. The man page of remove function says "remove() deletes a name from the file system." Can it remove any dir recursively ??? :rolleyes: (7 Replies)
Discussion started by: Trump
7 Replies

9. UNIX for Advanced & Expert Users

recursive copy of hidden files

I need to know how to copy hidden files recursively? cp -r sourceDir/* targetDir/. ignores the hidden files. Thank you!! (2 Replies)
Discussion started by: usfrog
2 Replies
Login or Register to Ask a Question