-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbackup.sh
More file actions
40 lines (34 loc) · 725 Bytes
/
backup.sh
File metadata and controls
40 lines (34 loc) · 725 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
if [ "$#" -ne 2 ] || ! [ -r "$1" ] || ! [ -r "$2" ]; then
echo "Invalid parameters" >&2
exit 1
fi
copy ()
{
while read line
do
local last="${line: -1}"
if [ $last != '/' ]
then
local var1=$1/$line
local var2=$2/$line
if [ "$var1" -nt "$var2" ]
then
local myfile="$var1"
pretime=$(stat -c %y "$myfile")
cp -fup $var1 $2
touch -d "$pretime" "$var2"
echo ` echo $var1 | cut -d '/' -f 1 --complement `
fi
else
local var=` echo $line | cut -d '/' -f 1 `
local new1="$1/$var"
local new2="$2/$var"
copy $new1 $new2
fi
done <<< "$( ls -1p "$1" )"
}
echo "Files copied from /$1 to /$2 are :"
copy $1 $2
echo "Files copied from /$2 to /$1 are :"
copy $2 $1