Sponsored Content
Top Forums Shell Programming and Scripting Help. noob needs help with file copy! Post 302215889 by wildside on Thursday 17th of July 2008 11:34:37 AM
Old 07-17-2008
Quote:
Originally Posted by Annihilannic
Something like this perhaps:

Code:
#!/usr/bin/ksh
find /srcdir -type f | while read f
do
    destfile=$(echo $f | sed 's#/srcdir#/destdir#')
    if find $destfile -newer $f
    then
        print "$destfile is newer than $f, skipping"
    else
        print cp -p $f $destfile
    fi
done

Obviously take out the second print once you've confirmed that it's going to do what you want.

THANK YOU! this is where I have been trying to get to.
So I tried to convert it to using Bash Shell. (im on OS 10.5)

Here is my script:

Code:
#!/bin/bash
find /FolderA -type f | while read f
do
    destfile=$(echo "$f" | sed 's#/FolderA#/FolderB#')
    if find $destfile -newer $f
    then
        echo "$destfile is newer than $f, skipping"
    else
        echo cp -p $f $destfile
    fi
done

When i run it, it looks like it will do everything correctly. I threw some random files in and changed a couple to test. I am getting an error where I think it is stumbling on a directory name with a space in it. I tried puting quotes on things here and there but to no avail. here is the line form the output.

Code:
find: /FolderA/new: No such file or directory
cp -p /FolderA/new folder/CODES.txt /FolderB/new folder/CODES.txt

so it looks like it stumbles but then copies the file in the directory anyway.
Is there a way to help this spaced directory error?
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

I am a unix noob

Hello i am new to this forum. I signed up here really to ask one question. I recentaly got a old unix server from my work and i never really understood what unix is or what is does. Dont get me wrong i and very smart with computers as long as its windows, mac, or linux i can use them all but i... (4 Replies)
Discussion started by: alt+f4
4 Replies

2. UNIX for Dummies Questions & Answers

complete noob

Hi all, This is my first post. I am a complete noobie to the UNIX OS, I have an iMac G5 with the unix shell built in and am interested in learning how to use it to do things useful with it, but have no idea where to start. I have read over the basic commands but they haven't helped me much yet.... (3 Replies)
Discussion started by: avdrummerboy
3 Replies

3. Linux

noob help needed

i'm having trouble putting together a program :( any help would be much appreciated! Write a Shell Program to automate the process of collecting assignments from the directories of students of any specified class. The person running the program should be able to pass a parameter to the... (1 Reply)
Discussion started by: ace_face
1 Replies

4. UNIX for Dummies Questions & Answers

Noob on Unix.

This may seem really easy to alot of you but i am a real noob on unix. I have been set the task to make a script which will answer a query. Basically I will have made files for people and i want to be able to search for a persons file and then select certain variables from the files. e.g... (7 Replies)
Discussion started by: bobtheb
7 Replies

5. UNIX for Dummies Questions & Answers

I'm a noob at Lynx...

So... I'm using lynx on a Mac... I didn't know that the whole dang thing is in Terminal? I rarely use terminal. I can't even figure out how to start the thing up. I type in lynx into it and press enter... And the cursor just goes down. Nothing happens like the FAQ websites describe. I feel so... (6 Replies)
Discussion started by: yennster
6 Replies

6. Shell Programming and Scripting

Noob's 1st...bash-script for copying one file into many

I have one file "file.a.b.c-d.r" that I would like to use to spawn 4 other files: "file.a.b.1-A.r" "file.a.b.1-B.r" "file.a.b.1-C.r" "file.a.b.1-D.r" where the field "c-d" changes into my 1 and A-D. I was doing this manually at the prompt with > cp "file.a.b.c-d.r" "file.a.b.1-A.r" >... (13 Replies)
Discussion started by: WSUToad
13 Replies

7. UNIX for Dummies Questions & Answers

Noob questions.. Append output to a file in different directory

Noob question! I know almost nothing so far, and I'm trying to teach myself from books, on a typical command line without using scripts how would I append output from a sort to a file in a completely different directory? example: If I'm sorting a file in my documents directory but I... (2 Replies)
Discussion started by: Byrang
2 Replies

8. Shell Programming and Scripting

how to copy the directory but not copy certain file

Hi experts cp bin root src /mnt but not copy bin/bigfile any help? ( I post this thread in the "redhat" forum wrongly, I don't know how to withdraw that question in that wrong forum) Thanks (6 Replies)
Discussion started by: yanglei_fage
6 Replies

9. Shell Programming and Scripting

ksh CSV to XML file (noob tier)

Hey all, I'm very new to shell scripting and would love some help. I have been messing around with KSH at my job, and have been tasked with generating an XML file from multiple CSV files. However, I barely even understand the syntax for for loops! Output should be something along the lines of ... (2 Replies)
Discussion started by: Parrakarry
2 Replies
FIND(1) 						      General Commands Manual							   FIND(1)

NAME
find - find files meeting a given condition SYNOPSIS
find directory expression EXAMPLES
find / -name a.out -print # Print all a.out paths find /usr/ast ! -newer f -ok rm {} ; # Ask before removing find /usr -size +20 -exec mv {} /big ; # move files > 20 blks find / -name a.out -o -name '*.o' -exec rm {}; # 2 conds DESCRIPTION
Find descends the file tree starting at the given directory checking each file in that directory and its subdirectories against a predi- cate. If the predicate is true, an action is taken. The predicates may be connected by -a (Boolean and), -o (Boolean or) and ! (Boolean negation). Each predicate is true under the conditions specified below. The integer n may also be +n to mean any value greater than n, -n to mean any value less than n, or just n for exactly n. -name s true if current filename is s (include shell wild cards) -size n true if file size is n blocks -inum n true if the current file's i-node number is n -mtime ntrue if modification time relative to today (in days) is n -links ntrue if the number of links to the file is n -newer ftrue if the file is newer than f -perm n true if the file's permission bits = n (n is in octal) -user u true if the uid = u (a numerical value, not a login name) -group gtrue if the gid = g (a numerical value, not a group name) -type x where x is bcdfug (block, char, dir, regular file, setuid, setgid) -xdev do not cross devices to search mounted file systems Following the expression can be one of the following, telling what to do when a file is found: -print print the file name on standard output -exec execute a MINIX command, {} stands for the file name -ok prompts before executing the command SEE ALSO
test(1), xargs(1). FIND(1)
All times are GMT -4. The time now is 03:04 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy