Sponsored Content
Top Forums Shell Programming and Scripting Chaining together exec within find Post 302999530 by apmcd47 on Thursday 22nd of June 2017 07:40:56 AM
Old 06-22-2017
Quote:
Originally Posted by jeffs42885
I would like to chain everything together using one find command.
Then use one find command. But modify Corona's code as follows:
Code:
# Logfile for errors, >&2 and any errors printed by tar/gzip/etc
exec 2> /path/to/errorlog
# Logfile for files, captures default stdout
exec 1> /path/to/filelog

TSTAMP=$(date +%Y-%m-%d)
TARBALL=/path/to/folder/$TSTAMP-one.tar

echo "$(date '+%Y-%m-%d %H:%M:%S') $0 Beginning execution" >&2

echo "# Archiving to $TARBALL"

if [ -e "$TARBALL" ] || [ -e "$TARBALL".gz ]
then
        echo "$(date '+%Y-%m-%d %H:%M:%S') $TARBALL already exists, refusing to overwrite" >&2
        exit 1
fi

tar -rf "$TARBALL" # Create empty tar file to append to

echo ls -ltr "$@"

if ! echo tar -rvf /absolute/path/to/archive.tar "$@"
then
        echo "$(date '+%Y-%m-%d %H:%M:%S') Creating archive failed" >&2
        rm -f "$TARBALL"
        exit 1
fi

if ! gzip "$TARBALL"
then
        echo "$(date '+%Y-%m-%d %H:%M:%S') Couldn't compress $TARBALL" >&2
        exit 1
fi

if ! echo rm "$@"
then
        echo "$(date '+%Y-%m-%d %H:%M:%S') Error removing files" >&2
        exit 1
fi

echo "$(date '+%Y-%m-%d %H:%M:%S') $0 completed successfully"

amd call it something like archive_and_delete. If AIX has xargs use:
Code:
find .... -print | xargs archive_and_delete

Even better if you can use
Code:
find .... -print0 | xargs -0 archive_and_delete

If AIX does not have xargs use:
Code:
find .... -exec archive_and_delete {} '+'

CAVEAT: I haven't tried the above script and I may even have introduced bugs into it with my edit. I am also assuming that you will continue to use the -type f directive to pass filenames rather than directory names.

Andrew

Last edited by apmcd47; 06-22-2017 at 09:59 AM.. Reason: deleted as I think I've misunderstood something
 

10 More Discussions You Might Find Interesting

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

2. UNIX for Advanced & Expert Users

query about find and -exec

Hi, i have query about "find" command. Do I need to put the command after -exec in single quotes? Why? For ex. see output of these three find commands. Any explanations? cheers, -Ashish (2 Replies)
Discussion started by: shriashishpatil
2 Replies

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

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

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

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

7. Ubuntu

Find and EXEC

This is a huge issue. and I need it fixed ASAP. account-system gate-system race_traffic_sensor achievement-system global race_voicepack admin glue-system realdriveby admin-system gps realism-system... (5 Replies)
Discussion started by: austech360
5 Replies

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

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

10. 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
All times are GMT -4. The time now is 03:47 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy