[ncolug] Re: Bash One Liner for Backup File

  • From: Mike <bellyacres@xxxxxxxxx>
  • To: ncolug@xxxxxxxxxxxxx
  • Date: Thu, 11 Feb 2016 17:10:12 -0500

On 02/11/2016 04:42 PM, Chuck wrote:

On Thu, 2016-02-11 at 16:41 -0500, Chuck wrote:
I'm done! A "Quick" function for making date/time stamped copies of your files.

cp-date86 ()
{
    declare -r datetime=$(date +%Y%m%d.%H%M%S);
    declare -a files;
    for file in $@;
    do
        dir=$(dirname $file);
        cd $dir && dir=$(pwd) && cd - &> /dev/null;
        file=$(basename $file);
        files[${#files[*]}]=$dir/$file;
    done;
    [[ -d ${files[-1]} ]] && dest_dir=${files[-1]} && unset files[-1];
    for file in ${files[@]};
    do
        if [[ -f $file ]]; then
            [[ ! -v dest_dir ]] && dest_dir=$(dirname $file);
[[ ! ${file%.*} == ${file##*.} ]] && ext=${file##*.} && file=${file%.*};
[[ -v VERBOSE ]] && echo "Copying $file.$ext to $dest_dir/${file##*/}.$datetime.$ext";
            cp -Pp $file.$ext $dest_dir/${file##*/}.$datetime.$ext;
        fi;
    done
}

Is it too late to say "I AM NOT A PROGRAMMER!"?

Wayyyyy to late for that Chuck!

Other related posts: