[ncolug] Re: Bash One Liner for Backup File

  • From: Chuck <cstickelman@xxxxxxxxxx>
  • To: ncolug@xxxxxxxxxxxxx
  • Date: Wed, 10 Feb 2016 18:06:03 -0500

On Wed, 2016-02-10 at 07:43 -0500, Mike wrote:

On 02/10/2016 12:38 AM, Rob Gibson wrote:
Chuck,

There is a one-liner that I have seen you use to make a copy of a
file
you are modifying with a datestamp appended to the filename, and I
have
been trying to rack my brain for that one-liner.

If I recall, it used 'cp' with a single argument?

Thanks,
Rob

Not Chuck, but this should work...

cp devmem2.c devmem2.c-$(date +'%Y-%m-%d')

Mike

To unsubscribe send to ncolug-request@xxxxxxxxxxxxx with
'unsubscribe' in the Subject field.

That's very close to what I used to use:
cp -p somefile{,.$(date +%Y%m%d.%H%M%S}
to copy somefile.txt to somefile.txt.CCYYMMDD.hhmmss
I didn't like the way that handled the extension, so at work I built a
shell function that can accept a list of files followed by a directory
and it will insert the .CCYYMMDD.hhmmss. part in front of the last
extension for each and place the copy in the named folder, stripping
off directories.  I named the function cpdate-8.6 and if I call it
like:
cpdate-8.6 * ./Archives/
it will make a copy of each file in the current directory, all with the
same time-stamp, and store them in the Archives directory.  Works nice.
 It uses cp -pPUI I think. The function became much larger than I
anticipated once I started accepting any random path. I finally cheated
and used a library from the Internets to convert all file names to
fully-qualified file names and then I had to have some logic for proper
handling of file anme extensions, in case the file didn't have one, or
had multiple.
It's a nice exercise. I may try it on this laptop now without the
library...

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

Other related posts: