1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
|
#!/bin/bash
source="/foo"
dest="/bar"
# run directories
for i in `find $source -type d -exec echo \{\} \; | sed -e "s/ /%%blank%%/g"`; do
# create subdir
new_dir="`echo $i | sed -e 's/%%blank%%/ /g' | sed -e 's/?/X/g' | \
sed -e 's/!/Y/g'`"
source_dir="`echo $i | sed -e 's/%%blank%%/ /g'`"
echo ">>> creating ${dest}/$new_dir"
mkdir "`echo '${dest}/$new_dir'`"
# run files
cd "$source/$source_dir"
for j in `find . ! -type d -mindepth 1 -maxdepth 1 -exec echo \{\} \; | sed -e "s/ /%%blank%%/g"`; do
new_filename="`echo $j | sed -e 's/%%blank%%/ /g' | sed -e 's/?/X/g' | \
sed -e 's/!/Y/g'`"
source_file="`echo $j | sed -e 's/%%blank%%/ /'`"
cp -v "`echo '$source/$source_dir/$source_file'`" \
"`echo '$dest/$dest_dir/$new_file'`"
done
cd -
done
|