[ncolug] Re: Bash One Liner for Backup File

  • From: Chuck <cstickelman@xxxxxxxxxx>
  • To: ncolug@xxxxxxxxxxxxx
  • Date: Thu, 11 Feb 2016 16:42:30 -0500

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!"?

Attachment: signature.asc
Description: This is a digitally signed message part

Other related posts: