Mutiple For loops - moving files to another directory


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Mutiple For loops - moving files to another directory
# 1  
Old 06-20-2007
Mutiple For loops - moving files to another directory

I need to clean out some application subdirectories from backup scripts we used to rename to various backup extensions just in case the script failed in production and we need to rollback. I will be moving these old scripts to a staging directory and then removing them after 30 days (I have the find command for removing scripts after so many days).

The subdirectories would be application directories in a specified place with another subdirectory that would contain the scripts, both of which I have to loop through, they will look like this: /dir/dir/*/scripts (the ‘*' is the application subdirectory that I will have to loop through, like /dir/dir/finance/scripts or /dir/dir/admin/scripts for example - there are around 15 of them or so). So I have to loop through the application directories, go into their scripts directory, and loop through the list of files to find any backup files and move them to a new staging directory like (/dir/dir/staging).

These scripts could have one of a variety of possible extensions: kshO, .bkp, .bkup, .OLD, or _OLD
The environment is KSH.

My knowledge of Unix at this point is limited to simple loops, so I'm not sure how to do 2 loops in 2 different places yet - could it be as simple as nesting a for loop in another for loop?
# 2  
Old 06-20-2007
Does this work for you:
Code:
mDirs="/dir/dir/*/"
for mFile in ${mDirs}.[kshO|bkp|bkup|OLD|_OLD]
do
  echo "mFile = "$mFile
done

# 3  
Old 06-20-2007
Mutiple For loops - moving files to another directory

I tried it as you stated and it came back with a syntax error of '|' unexpected. I then tried it with ||, and [[ ]]. Using your logic, I will research some more. If you have any other ideas, I'm appreciative!
# 4  
Old 06-20-2007
You have to be in a POSIX shell to have that work - like bash or ksh.
# 5  
Old 06-20-2007
Sorry Tekster -- here is another version:
Code:
mDirs="/dir/dir/*/*"
for mFile in ${mDirs}
do
  mExt=`echo $mFile | sed 's/.*\.//'`
  case ${mExt} in
    kshO|bkp|bkup|OLD|_OLD) echo "mFile = "${mFile};;
  esac
done

# 6  
Old 06-20-2007
With find:

Code:
find /dir/dir \( -name "*.kshO" -or -name "*.bkp" -or -name "*.bkup" -or -name "*.OLD" -or -name "*._OLD" \) -exec mv {} /dir/dir/staging \;

Regards
# 7  
Old 06-20-2007
Mutiple For loops - moving files to another directory

Hey ShellLife,

That last one seemed to work better, I got some results back, but not quite as I expected, but getting closer ! Smilie At some point, I will have to exchange the last '*' for the directory "scripts" because I will be searching only the scripts folder in each application directory (/dir/dir/*/scripts), but for now, I'm just trying to work with the code you're suggesting. Funny, when I tried it several more times, I didn't get anything back (I checked my syntax over and over again). At any rate, this is what it gave me:

ksh[3]: mExt/dir/dir/admin/data: not found
ksh[3]: mExt/dir/dir/admin/scripts: not found
ksh[3]: mExt/dir/dir/finance/data: not found
ksh[3]: mExt/dir/dir/finance/scripts: not found

So it seems to be finding the folders, but not the stuff listed in the case statement, and it seems to be tacking on mExt to the end. I like the idea of the case statement though, it seems to be helping. I'll keep playing with it...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Moving Files one directory to another directory shell script

Hi, Could you please assist how to move the gz files which are older than the 90 days from one folder to another folder ,before that it need to check the file system named "nfs" if size is less than 90 or not. If size is above 90 then it shouldn't perform file move and exit the script throwing... (4 Replies)
Discussion started by: venkat918
4 Replies

2. UNIX for Dummies Questions & Answers

Moving all files in a directory to another directory and archiving them

Hi All, i need to move all files in a directory to some other directory and need to archive them,,, Ex.. Source_Path/my_directory/ files in it are... acw.csv 123.txt bge.dat etc ..and we dont know how many files does my_directory contains and all are with different extensions ..so i need... (6 Replies)
Discussion started by: dssyadav
6 Replies

3. Shell Programming and Scripting

Grepping file names, comparing them to a directory of files, and moving them into a new directory

got it figured out :) (1 Reply)
Discussion started by: sHockz
1 Replies

4. Shell Programming and Scripting

how to replace words in mutiple files under the same directory

I would like to get help to find how to replace word in files from command line instead of to vi to each file. This is the command i am running now. grep <old word> * vi (file with the word found in it) 1,$s/<old word>/<new word>/g It would very helpful if I can combine these in one... (2 Replies)
Discussion started by: ywu081006
2 Replies

5. Shell Programming and Scripting

Moving Files from one directory to another directory

Please do help me out with this. I have to write the following script. There is a directory named "storage_directory" and it has hundreds of files in it. My script has to move each file from the storage_directory to "temp_directory" After moving each file, it has to create a log of the File... (4 Replies)
Discussion started by: ss3944
4 Replies

6. Shell Programming and Scripting

Moving all files from 1 directory to another

For example i have a directory called name and another called school how to remove first 5 files from name into school? thanks for helping (1 Reply)
Discussion started by: cryogen
1 Replies

7. Shell Programming and Scripting

Moving files to specified directory.

Hi I have made a shell script which moves files from a trash bin back to the original directory and also has the option to restoring the file to a directory that is specified by the user. The restoring it to the original directory is working fine, the restoring it to a specified directory is now.... (2 Replies)
Discussion started by: Jodi
2 Replies

8. Shell Programming and Scripting

Creating date directory and moving files into that directory

I have list of files named file_username_051208_025233.log. Here 051208 is the date and 025233 is the time.I have to run thousands of files daily.I want to put all the files depending on the date of running into a date directory.Suppose if we run files today they should put into 05:Dec:08... (3 Replies)
Discussion started by: ravi030
3 Replies

9. Shell Programming and Scripting

Moving files not directory.

Hi, I want to move only files not subdirectories. I issued the below command, but subdirectories are also gets moved. mv /ucrrpd/input/upload/ /ucsspd/common/history/ In the above case, all subdirectories in /ucrrpd/input/upload/ also gets moved to /ucsspd/common/history/ I want to... (1 Reply)
Discussion started by: senthil_is
1 Replies

10. UNIX for Dummies Questions & Answers

moving files from a unix directory to a windows directory

Any body any ideas i'm failry new to this so any help would be appreciated. Cheers Steve (2 Replies)
Discussion started by: gleads
2 Replies
Login or Register to Ask a Question