How to copy set of files with date appended to their name


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to copy set of files with date appended to their name
# 8  
Old 07-07-2008
You should write a script, something like this:

Code:
#! /bin/bash

usage() {
  printf "Usage: $0 source_dir dest_dir files.csv ...\n"
  exit 1
}

(($# < 3)) && usage

[ -d "$1" -a -d "$2" ] || usage

src="$1" dest="$2" dt=$(date +%d%m%Y)
shift 2

for f; do
  [ -f "$src/$f" ] || { printf "$src/$f is not a regular file\n"; continue;}
  mv -f "$src/$f" "$dest/${f%.csv}_$dt.csv" 2>/dev/null ||
    { printf "Cannot move $src/$f to $dest/${f%.csv}_$dt.csv\n"; continue;}
done

Save the above code in a file, give the appropriate permissions and run it like this:

Code:
./script_name source_dir dest_dir filenames.csv ...

Just saw you want to pass the pattern, so the script should be:

Code:
#! /bin/bash

usage() {
  printf "Usage: $0 source_dir dest_dir \"pattern\"\n"
  exit 1
}

(($# < 3)) && usage

[ -d "$1" -a -d "$2" ] || usage
src="$1" dest="$2" pattern="$3" dt=$(date +%d%m%Y)

for f in "$src"/$pattern; do
  [ -f "$f" ] || { printf "$f is not a regular file\n"; continue;}
  t="${f##*/}"
  e="${f##*.}"
  mv -f "$f" "$dest/${t%.*}_$dt.csv.$e" 2>/dev/null ||
    { printf "Cannot move $f to $dest/${t%.*}_$dt.$e\n"; continue;}
done

You should quote the pattern on the command line:

Code:
./script_name source_dir dest_dir "*.csv"


Last edited by radoulov; 07-08-2008 at 02:54 AM..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to copy or cut specific rows from appended file with some conditions

Hi I have one file which is containing about 5000 rows and 20 columns I will just explain about my requirement here briefly with sample file, I have attached also, please help....me.. 1 28.25 36.42 5 28.26 36.42 10 28.23 36.43 15 28.22 36.43 20 28.2 36.42 25... (6 Replies)
Discussion started by: nex_asp
6 Replies

2. Shell Programming and Scripting

how to copy current date files to another dir

i have directory /abcd and i want to copy all today date files in /xyz directory. i am able to see the files by using below command but not able to understand copy. find . -mtime -1 -type f -exec ls -l {} \; (2 Replies)
Discussion started by: learnbash
2 Replies

3. UNIX for Dummies Questions & Answers

Script to copy files from a certain date

I need to copy files from a directory that has a lot of files in it. However I only want to copy them from a certain date. My thoughts so far are to use ls -l and to pipe this into awk and print out tokens 6 (month)and 7 (day). $ ls -l -rw-r--r-- 1 prodqual tst 681883 Jun 12... (2 Replies)
Discussion started by: millsy5
2 Replies

4. UNIX for Dummies Questions & Answers

Move txt file to with current date appended to filename

I have multiple txt files which begin with the word "orders" in folder C:\source. I need to move the files to folder C:\dest and rename them to "process_<date>_<count>" So for example , if there are 3 files ordersa.txt , ordersb.txt and ordersc.txt in C:\source , after running the script I want... (7 Replies)
Discussion started by: johannd
7 Replies

5. Shell Programming and Scripting

Move txt file to with current date appended to filename

I have multiple txt files which begin with the word "orders" in folder C:\source. I need to move the files to folder C:\dest and rename them to "process_<date>_<count>" So for example , if there are 3 files ordersa.txt , ordersb.txt and ordersc.txt in C:\source , after running the script I want... (1 Reply)
Discussion started by: johannd
1 Replies

6. UNIX for Dummies Questions & Answers

shell scripts - create a filename with the date appended

I am looking to do something where if I created a file named backup,or whatever it would print a name like “backup_Apr_11_2011”. Thanks citizencro (1 Reply)
Discussion started by: citizencro
1 Replies

7. Shell Programming and Scripting

Copy files based on date

Hi all i am having so many files in my directory.Is there any option to copy files based on date. example i am having file this -rw-rw-r-- 1 ram user 1 Feb 2 17:12 abc -rw-rw-r-- 1 ram user 1 Feb 2 17:12 bnw -rwxrwxr-x 1 ram user 21122 Feb 4... (3 Replies)
Discussion started by: suryanarayana
3 Replies

8. Shell Programming and Scripting

How to sort a set of files by date in a directory?

hi there, I have a directory which contents I can parse dynamically. I end up with a file list. I then want to display those files sorted by date, oldest files first. I have very very little PERL experience...Would anyone know how to do that ? Thanks in advance. (8 Replies)
Discussion started by: alexf
8 Replies

9. UNIX for Advanced & Expert Users

How can i copy files by date last modifed range?

When I do a ls -lt I get a list of files by date modified from newest to oldest. I would like to be able to copy some files to another directory using a date last modified range (i.e. Apr 30 - May 13) How could I do this? Thanks, Joe (4 Replies)
Discussion started by: geauxsaints
4 Replies

10. HP-UX

copy files with date

Hi, I have a coupel of files in /tmp which I have to copy to /var. But I want their name to be same as the source with date suffix. But the problem is I don;t know the prefix of the file, I only know the suffix of file. AAA.997 ABC.997 ADC.997 The later part 997 is constant but the... (1 Reply)
Discussion started by: isingh786
1 Replies
Login or Register to Ask a Question