Copying Multiple Files into a Subdirectory


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Copying Multiple Files into a Subdirectory
# 1  
Old 12-11-2011
Copying Multiple Files into a Subdirectory

Hello,

I'm very new to scripting languages and I'm to use shell script to write a utility to backup files with a specific extension into a subdirectory.

Here is what I have done.

Code:
#!/bin/bash

read -p "Enter file(s) extension: " FILE

if [ -e *.$FILE ]; then
         mkdir `whoami`.$FILE #To create a directory with the name of the current user and the extension of the file
         cp *.$FILE `whoami`.$FILE #Gives me error when I have multiple files of same type in my directory
elif [ -d `whoami`.$FILE ]; then
         echo "The directory already exits." #It should check to see whenever there is an existing directory or not but instead it gives me an error ": binary operator expected"
elif [ ! -e *.$FILE ]; then
         echo "Extension does not match"
fi

Any help is highly appreciated.

Thank you

Last edited by alphanoob; 12-12-2011 at 12:13 PM..
# 2  
Old 12-11-2011
Code:
#!/bin/bash

USER=$( whoami )
read -p "Extension : " EXT
DIR=${USER}${EXT}

log()
{
        errno=${1}; msg=${2}
        if [ ${errno} -eq 999 ]; then
                echo "INFO : ${msg}"
        elif [ ${errno} -ne 0 ]; then
                echo -e "ERROR : ${msg}\nExiting..."
                exit 1  
        fi
}

ls *.${EXT} >/dev/null 2>&1
log ${?} "No valid files with extension : ${EXT}"
        
if [ ! -d ${DIR} ];then
        log 999 "Creating ${DIR}..."
        mkdir -p ${DIR} >/dev/null 2>&1
        log ${?} "Could not create ${DIR}!"
else
        log 999 "${DIR} already exists..."
fi

log 999 "Copying *.${EXT} to ${DIR}..."
cp -f *.${EXT} ${DIR} >/dev/null 2>&1
log ${?} "Copy failed!"

HTH
--ahamed

Last edited by ahamed101; 12-11-2011 at 08:07 PM..
This User Gave Thanks to ahamed101 For This Post:
# 3  
Old 12-11-2011
@alphanoob: There's a hanging double quote in the last elif condition. [ ! -e *.$FILE"]. This will throw an error.

Apart from this, the script will display a message cp: omitting directory `user.dat' when it tries to copy folder `whoami`.$FILE to itself.

By the way, what exactly is your question?
# 4  
Old 12-11-2011
Hello,

Thank you very much for both of your replies. Apart from what has been noted in codes done by ahmad101. My question is to exactly copy the files of same types (e.g. txt, jpg) to another location.

Thank you
# 5  
Old 12-11-2011
That is what is done, right?... EXT will have the extension and that will used to copy the files with that extension. Did I get it wrong?

--ahamed
This User Gave Thanks to ahamed101 For This Post:
# 6  
Old 12-12-2011
Thank you very much for your prompt response. Just one more question? If I want it able to get the extension as an argument what should I do exactly?
# 7  
Old 12-12-2011
Get rid of the 'read' and use a positional variable like $1, $2, ...

Be sure to validate the arguments as given.

Code:
if [ "$#" -lt 1 ]
then
        echo "Not enough arguments"
        exit 1
fi

EXT="$1"

This User Gave Thanks to Corona688 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Copying the files in to multiple location using shell script

Hi All, i'm trying to copy the 1.txt files (sample files) in to different path location using the below command. But it is not copying the files , when i tried for single location able to copy the file. can any one please assist here. Please find the below path :- /ckr_mkr1/licencekey... (2 Replies)
Discussion started by: venkat918
2 Replies

2. Shell Programming and Scripting

Shell script for connecting multiple servers and then copying 30 days old files

Shell script for connecting multiple servers and then copying 30 days old files from those server . HI , I have 6 multiple servers pla1,pla2,pla3,pla4,pla5,pla6 1. These six servers have common shared mount point /var/share 2. Running script from /var/share to connect these servers.I... (1 Reply)
Discussion started by: rcroyal88
1 Replies

3. Shell Programming and Scripting

Search for specific file type in subdirectory with multiple folders

I have a directory that is in the below order (the --- is not part of the directory tree, only there to help illustrate: DATE --- main level Folder1 --- level under DATE plugin_out --- level under Folder1 variantCaller_out.40 --- level under plugin_out 001,002,003 --- level under... (3 Replies)
Discussion started by: cmccabe
3 Replies

4. Shell Programming and Scripting

Copying multiple files and appending time stamp before file extension

Hi, I have multiple files that read: Asa.txt Bad.txt Gnu.txt And I want to rename them using awk to Asa_ddmmyytt.txt and so on ... If there is a single command or more efficient executable please share! Thanks! (4 Replies)
Discussion started by: Jesshelle David
4 Replies

5. Shell Programming and Scripting

Copying a file to multiple other files using a text file as input

Hello, I have a file called COMPLIST as follows that contains 4 digit numbers.0002 0003 0010 0013 0015 0016 0022 0023 0024 0025 0027 0030 0031 0032 0033 0035 0038 0041 (3 Replies)
Discussion started by: sph90457
3 Replies

6. UNIX for Dummies Questions & Answers

Help in copying multiple files from th directory

Hey Guys, I have directory with thousands of files, I need to copy only march data. can any one please Help.......... Thanks, Uttam N (4 Replies)
Discussion started by: Uttamnsd
4 Replies

7. Shell Programming and Scripting

Copying multiple csv files

Hi, I have mutiple csv files at server1 at /apps/test/data. I needed a script that would copy these csv files from server1 at /usr/data, put them in server2,archive the earlier files that were present in server2 before removing those already present. Kindly help. (2 Replies)
Discussion started by: Alok Ranjan
2 Replies

8. UNIX for Dummies Questions & Answers

copying multiple files

We want to copy the data from all the files SPR_201103* to AMGEN. We tried the following command cp $AGENT_DATA/amgen/SPR_201103* $AGENT_DATA/AMGEN amgen is directory . AMGEN is file we are trying to creat. for SPR_201103* 10 files are there Please help me to how to achive this.... (2 Replies)
Discussion started by: ajaykumarkona
2 Replies

9. UNIX for Dummies Questions & Answers

Copying files multiple times increasing sequentially

I am looking for the easiest way to copy a set of files 1000 times and increment sequentially. I want to copy these 2 files: Scenario.1.1.ud Scenario.1.2.ud So that it creates the following: Scenario.2.1.ud Scenario.2.2.ud Scenario.3.1.ud Scenario.3.2.ud .. .. Scenario.1000.1.ud... (2 Replies)
Discussion started by: JPOrlando
2 Replies

10. Shell Programming and Scripting

Synchronization in copying multiple files to a directory

Hi Friends, My goal is to copy 1000 of files of same filesize simultaneously to a directory. i.e i do multiple copies into a same directory. What i feel here is, at some 1000th iteration, few transfers ends in advance before some transfers start. I need to get synchronized file transfers so that... (1 Reply)
Discussion started by: amio
1 Replies
Login or Register to Ask a Question