#!/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?
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)
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)
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)
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)
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)
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)
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)
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)
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
LEARN ABOUT MINIX
find
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)