Find and EXEC


 
Thread Tools Search this Thread
Operating Systems Linux Ubuntu Find and EXEC
# 1  
Old 11-30-2011
Network Find and EXEC

This is a huge issue. and I need it fixed ASAP.

Code:
account-system      gate-system           race_traffic_sensor
achievement-system  global                race_voicepack
admin               glue-system           realdriveby
admin-system        gps                   realism-system
animation-system    gps-system            realistictrains
anticheat-system    hay                   realtime-system
apps-system         heligrab              reload
assault             help                  report-system
as-sharks           helpmanager           roadblock-system
as-supermarket      help-system           runcode
bank-system         interiors             saveplayer-system
briefcase           interior-system       scoreboard
briefcaserace       item-system           shop-system
camera-system       job-system            sittablechairs
carlist-system      joinquit              social-system
carshop-system      killmessages          spike-system
cdm                 language-system       stealth
character-system    license-system        sth-coookiepirates
chat-system         lses-system           superman
computers-system    lspd-system           tag-system
ctf                 map-system            tdm
ctv                 mdc-system            tdma
dancer-system       missiontimer          teammanager
deathmatch          mods-system           tooltip
driveby             move_cursor           tooltips-system
edf                 move_freecam          tow-system
editor_gui          move_keyboard         valhallashield
editor_main         msgbox                vehicle-mods-system
elevator-system     mtaworkaround         vehicle-plate-system
event-system        object-system         vehicle-system
faction-system      parachute             vgaccount
fallout             performancebrowser    vG-logs
fiddycal            phone-system          vgscoreboard
flood               pickuphandler         video-poker
freecam             race                  voice
freecam-tv          race_delay_indicator  votemanager
freeroam            race_nos              weaponcap
fuel-system         race_racewar          weather-system
gatekeepers-system  race_toptimes

That is a list of all of my folders. I need zip files created of all of those files. I can get everything I need when I do find -maxdepth 1
It will show all of those directories. Now. I need to zip the contents of those directories. to zip files. named after the folder they came out of. So. all the files in weather-system, would come out as a zip file. which has the contents of weather-system in the weather-system.zip. without the folder called weather system inside. so. instead of

weather-system.zip
-weather-system(D)
-Files and such

I need
weather-system.zip
-Files and such

If you have any idea how to do it. I would be in a much better shape.

I have been trying something like
find -maxdepth 1 -exec zip {} {}/* \;
but. that looks ridiculous. and doesn't work
# 2  
Old 11-30-2011
First off, you need to specify one or more path arguments to find, as in:
Code:
find * -maxdepth 1 -exec zip {} {}/* \;

However, find does not interpolate pattern matching characters, so "*" is not expanded as you expect. You need to invoke the zip in a shell, as follows:
Code:
find * -maxdepth 1 -exec sh -c 'zip {} {}/*' \;

Alternately, you could have:
Code:
for dir in *; do
    zip ${dir} ${dir}/*
done

# 3  
Old 12-02-2011
Quote:
Originally Posted by m.d.ludwig
First off, you need to specify one or more path arguments to find, as in:
Code:
find * -maxdepth 1 -exec zip {} {}/* \;

However, find does not interpolate pattern matching characters, so "*" is not expanded as you expect. You need to invoke the zip in a shell, as follows:
Code:
find * -maxdepth 1 -exec sh -c 'zip {} {}/*' \;

Alternately, you could have:
Code:
for dir in *; do
    zip ${dir} ${dir}/*
done

You clever bastard! This is pure win!
# 4  
Old 12-02-2011
M'whahahah :-)
# 5  
Old 12-03-2011
Quote:
Originally Posted by m.d.ludwig
M'whahahah :-)
I spoke too soon. It worked once. then it stopped working. Not sure what happened. Its not getting the whole * thing. It still grabs the parent directory. Not sure why. I think its considered the relative path.
# 6  
Old 12-04-2011
What you can do is:
Code:
find * -maxdepth 1 -exec echo sh -c 'zip {} {}/*' \;

and
Code:
find * -maxdepth 1 -exec sh -c 'echo zip {} {}/*' \;

to determine what is being invoked.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

2 exec in find

Guys, I want to find the log files greather than 23 days and i want to perform 2 things here. one is to list the files and second is to gzip the files. hope this can be done using sh -c option. but not sure the exact command. find . -name "*.log" -mtime +23 -exec ls -la {} \; ... (5 Replies)
Discussion started by: AraR87
5 Replies

2. UNIX for Dummies Questions & Answers

What does the '\' in find -exec command

Hi, I have two scripts that remove files. One works fine and is coded find -name "syst*" -mtime +1 -exec rm {} \; The other is almost the same - only thing missing is the '\'. On that script though I keep getting: rm syst1202.file ? etc Does the \ make that difference or is it a... (3 Replies)
Discussion started by: Grueben
3 Replies

3. Shell Programming and Scripting

find command with -exec

Hi all, Please could someone help with the following command requirement. I basically need to find files NEWER than a given file and order the result on time. My attempt so far is as follows: find . -newer <file_name> -exec ls -lrt {} ;\ But I dont seem to get the right result... (12 Replies)
Discussion started by: jonnyd
12 Replies

4. Shell Programming and Scripting

find: missing argument to `-exec' while redirecting using find in perl

Hi Friends, Please help me to sort out this problem, I am running this in centos o/s and whenever I run this script I am getting "find: missing argument to `-exec' " but when I run the same code in the command line I didn't find any problem. I am using perl script to run this ... (2 Replies)
Discussion started by: ramkumarselvam
2 Replies

5. Ubuntu

Find and exec

Hello, I am a linux newbe. I want to install a program. I can download it only with wget command from internet. As far as i know this wget command does not transfer the exacutable flags. Because of that i wanted to find all configure files and change their mod to 744. I found this... (1 Reply)
Discussion started by: disconnectus
1 Replies

6. UNIX for Dummies Questions & Answers

find problem with exec

Hi, i want to make a script that calculates the total size in bytes from files from a directory(first argument) and displays "Total :xxxxx", the second argument must indicate the minimum size of files processed and the third argument indicates the path to a file that will save the processed file... (21 Replies)
Discussion started by: MorpheusC
21 Replies

7. UNIX for Dummies Questions & Answers

Find Exec

Hello All, Is there a way to make exec do a couple of operations on a single input from find? For example, find . -type d -exec ls -l "{}" ";" I would like to give the result of each "ls -l" in the above to a wc. Is that possible? I want to ls -l | wc -l inside... (1 Reply)
Discussion started by: prasanna1157
1 Replies

8. Shell Programming and Scripting

Using MV FIND and -EXEC

Hi, i would like to rename files in directories and subdirs. Files contains specific french or strange caracters. I want to replace all non alpha-numerics by _ (underscore) First, i made this, but i think the "for" is limited. How can i do this directly by FIND ? for file in $(find .... (0 Replies)
Discussion started by: degraff63
0 Replies

9. Shell Programming and Scripting

| with find -exec

can we use |(pipe operator) with find -exec.....? or can pipe the output of find command to another command...? if not, why...? pls explain (3 Replies)
Discussion started by: vijay_0209
3 Replies

10. UNIX for Advanced & Expert Users

find and exec

Hi, Happy new year. Would you be so kind to explain me what does this instruction : find /rep/app -type l -exec ls -l {} \;> allink.lst Many thanks. (2 Replies)
Discussion started by: big123456
2 Replies
Login or Register to Ask a Question