I have a folder in my server which contains some files. These are automated that means everyday we get new files automatically which will overwrite the old ones. So want to take a back up for this data. How can i copy all these files in to a another folder by renaming the files with current date while copying.
ex : i have a folder named folder1 which contains 4 files. path for this folder is home/webapps/project1/folder1
now i want to copy all these four files in to a different folder named folder2. path for this folder is home/webapps/project1/folder2. while copying these files i want to rename each file and add the current date to the file. so my file names in folder2 should be..
I want to write a shell script for this. Please give me some idea or some sample scripts related to this.
In bash
, provided you files names have no spaces:
cd /home/webapps/project1/folder1 for f in *.csv do cp -v "$f" /home/webapps/project1/folder2/"${f%.csv}"$(date +%m%d%y).csv done
You could use a script like the below. You would just need to change the date options to match the format you wanted.
#!/bin/bash
for i in `ls -l /directroy`
do
cp $i /newDirectory/$i.`date +%m%d%Y`
done
path_src=./folder1
path_dst=./folder2
date=$(date +"%m%d%y")
for file_src in $path_src/*; do
file_dst="$path_dst/$(basename $file_src | \
sed "s/^\(.*\)\.\(.*\)/\1$date.\2/")"
echo mv "$file_src" "$file_dst"
done
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With