F1 in Linux command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting F1 in Linux command
# 1  
Old 07-06-2011
F1 in Linux command

Hi,

In my root directory i have folder1, folder2, folder3. The folder1 has folder1.1, folder1.2, folder1.3 subdirectories. Similary folder2 has folder2.1, folder2.2, folder2.3 etc. Same for rest of the folders. I have many such folders like folder4, folder5.......upto folder30 in my root directory.

I have files with several extensions like *.txt, *.tmp, *.mp3, *.rm, *.exe, *.i etc. in all these folders.

So i want to delete all files except *.txt and *.exe from all the folders except folder1 from root directory. In otherwords i want all files (except *.txt and *.exe) to be deleted from folder2, folder3......upto folder30. Any files in Folder1 should not be deleted.

Please give me a linux command for this.

Thanks
# 2  
Old 07-06-2011
Enjoy this test case :

Code:
# ls d?
d?: No such file or directory
# cat mktree
for i in 1 2 3 4
do
for j in 1 2 3 4
do
mkdir -p d$i/d$i$j
touch d$i/d$i$j/f$i$i$j.txt
touch d$i/d$i$j/f$i$i$j.mp3
touch d$i/d$i$j/f$i$i$j.exe
touch d$i/d$i$j/f$i$i$j.tmp
done
done
# sh mktree
# ls d?
d1:
d11  d12  d13  d14

d2:
d21  d22  d23  d24

d3:
d31  d32  d33  d34

d4:
d41  d42  d43  d44
# find d3 -type f
d3/d31/f331.txt
d3/d31/f331.mp3
d3/d31/f331.exe
d3/d31/f331.tmp
d3/d32/f332.txt
d3/d32/f332.mp3
d3/d32/f332.exe
d3/d32/f332.tmp
d3/d33/f333.txt
d3/d33/f333.mp3
d3/d33/f333.exe
d3/d33/f333.tmp
d3/d34/f334.txt
d3/d34/f334.mp3
d3/d34/f334.exe
d3/d34/f334.tmp
# find d[2-4] -type f ! \( -name "*.exe" -o -name "*.txt" \)
d2/d21/f221.mp3
d2/d21/f221.tmp
d2/d22/f222.mp3
d2/d22/f222.tmp
d2/d23/f223.mp3
d2/d23/f223.tmp
d2/d24/f224.mp3
d2/d24/f224.tmp
d3/d31/f331.mp3
d3/d31/f331.tmp
d3/d32/f332.mp3
d3/d32/f332.tmp
d3/d33/f333.mp3
d3/d33/f333.tmp
d3/d34/f334.mp3
d3/d34/f334.tmp
d4/d41/f441.mp3
d4/d41/f441.tmp
d4/d42/f442.mp3
d4/d42/f442.tmp
d4/d43/f443.mp3
d4/d43/f443.tmp
d4/d44/f444.mp3
d4/d44/f444.tmp

So once you are sure your selection only select what you want to remove, then add the removal directive
Code:
find d[2-4] -type f ! \( -name "*.exe" -o -name "*.txt" \) -exec rm {} +

This is just an example, feel free to adapt to your needs

Last edited by ctsgnb; 07-06-2011 at 02:16 PM.. Reason: ======> Thanks Alister for pointing out the missing {}
# 3  
Old 07-06-2011
Quote:
Originally Posted by ctsgnb
Code:
find d[2-4] -type f ! \( -name "*.exe" -o -name "*.txt" \) -exec rm +

Don't forget the {} placeholder in the exec primary's arguments.

Regards,
Alister
This User Gave Thanks to alister For This Post:
# 4  
Old 07-06-2011
@alister,

Fixed ! ... Thx

@keshi

I guess in your example, it should look something close to

Code:
find folder[2-9] folder[1-9][0-9] -type f ! \( -name "*.exe" -o -name "*.txt" \) -exec rm {} +


Last edited by ctsgnb; 07-06-2011 at 02:17 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Linux find command seems to not transmit all the result to the '-exec command'

Hello. From a script, a command for a test is use : find /home/user_install -maxdepth 1 -type f -newer /tmp/000_skel_file_deb ! -newer /tmp/000_skel_file_end -name '.bashrc' -o -name '.profile' -o -name '.gtkrc-2.0' -o -name '.i18n' -o -name '.inputrc' Tha command... (3 Replies)
Discussion started by: jcdole
3 Replies

2. UNIX for Beginners Questions & Answers

Simple sed command not working; could be a Mac/Linux vs. PC/Linux issue

Hello, I am on a Mac and trying to clean up some monthly files with a very simple SED: sed '3,10d;/<ACROSS>/,$d' input.txt > output.txt (from the input, delete lines 3 - 10; then delete from the line containing <ACROSS> to the end of the file) then output to output.txt Even when I try... (2 Replies)
Discussion started by: verbatim
2 Replies

3. Shell Programming and Scripting

Linux command needed

guys im new here and i need help with some linux commands. filea has keyword on each line identity aaa bbb ccc i have following commands. egrep 'www.identity' ~/home/m3 >~/home/lopo2 wc -l file ~/home/lopo2 say lopo2 has 44 lines then output saved is identity 44 (1 Reply)
Discussion started by: ahfze
1 Replies

4. Programming

how to use linux command in c++?

I wonder how can u use linux's command like "clear" in c++. (3 Replies)
Discussion started by: nishrestha
3 Replies

5. Shell Programming and Scripting

Linux Command Error for nawk command

Hi All We are migrating our projects from unix environment to linux. I tried running a install script which sets up my project, i.e. the directory structure and all. But in the middle of the script i started receiveing following error : nawk: command not found . So i need to know which... (1 Reply)
Discussion started by: vee_789
1 Replies

6. UNIX for Dummies Questions & Answers

linux command

whats mean of ll -lart and ll -alrt ? (3 Replies)
Discussion started by: amol munde
3 Replies

7. UNIX for Dummies Questions & Answers

ps command on linux

Hello everyone, Simple I think? The ps command on linux seem to cut off the full command and makes grep useless, unlike Solaris. Here is an example: Solaris ps -aef|grep blue larry 7111 1 0 Mar 26 ? 0:00 xterm -fg white -bg black -cr blue -j -s -sl 100 Linux ps -aef|grep blue ... (4 Replies)
Discussion started by: larry
4 Replies
Login or Register to Ask a Question