Shell script to move files to 3 different folders


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell script to move files to 3 different folders
# 1  
Old 07-14-2009
Shell script to move files to 3 different folders

Hi guys:

I've got this problem, I want to move a bunch of files to 3 different folders, without any specific order, and I'm trying to automatize it with a shell script.
I'm a newbie at shell scripting so this is my first try:

Code:
#!/bin/bash

COUNTER=`ls -1 | wc -l`

while [ "$COUNTER" != "0" ]
do
    ARRAY=( $(ls | head -n 3) ) 
    mv ${ARRAY[0]} folder1/
    mv ${ARRAY[1]} folder2/
    mv ${ARRAY[2]} folder3/
done

But I can't make it work. When executed it moves half of the files to folder1, the other half to folder2 and deletes folder3 (?). It also creates a folder called folder1 inside folder1, but it doesn't do that with folder2.
As you can see, I'm trying to do this by reading the first 3 files inside the folder where the script is executed and then putting them inside an array to make the 3 mv statements. I'm sure it's all messed up.
I'll really appreciate your help with this one.
# 2  
Old 07-14-2009
try

Code:
#!/bin/bash
ls|head -3|while read line; do
cp "$line" "./folder1/"
cp "$line" "./folder2/"
cp "$line" "./folder3/"
rm "$line"
done


Last edited by vgersh99; 07-14-2009 at 05:34 PM.. Reason: code tags, PLEASE!
# 3  
Old 07-14-2009
If the file is changing and you want to make sure all three copies are the same, move the file to the first location, then copy from the first location to the other two locations.
# 4  
Old 07-14-2009
thanx a lot, i'm trying it right now

---------- Post updated at 03:05 PM ---------- Previous update was at 02:51 PM ----------

I just tryied it and it just copies first 3 files to all 3 folders and then deletes them from source folder, it's almost working as i need to, but it has to continue copying the rest of the files (could be 100 or 200 files in source folder), maybe i wasn't that clear, the script has to copy or move recursively all files from source folder in order to distribute them in the 3 folders, not move all files to all folders, i'm gonna try a mix between both scripts
thanx

---------- Post updated at 03:07 PM ---------- Previous update was at 03:05 PM ----------

I just tryied it and it just copies first 3 files to all 3 folders and then deletes them from source folder, it's almost working as i need to, but it has to continue copying the rest of the files (could be 100 or 200 files in source folder), maybe i wasn't that clear, the script has to copy or move recursively all files from source folder in order to distribute them in the 3 folders, not move all files to all folders, i'm gonna try a mix between both scripts
thanx
# 5  
Old 07-14-2009
finish

try cp -R instead of just cp

cp -R will copy subdirs also
# 6  
Old 07-14-2009
Quote:
Originally Posted by sighK
try cp -R instead of just cp

cp -R will copy subdirs also
why? That was not the question.
Code:
#!/bin/bash
find . -type f | while read file; do
    cp "$file" "./folder1/"
    cp "$file" "./folder2/"
    cp "$file" "./folder3/"
    rm "$file"
done

# 7  
Old 07-14-2009
I think my script was working from the beginning but I was executing it inside the source folder so 'ls' command was listing directories too and moving them (at least the first one), I just executed it from outside source folder (with proper paths) and it ran OK. The only problem left is that doesn't seem to stop, maybe something about the counter, hope you can figure it out. I'll do more trials. Thanx.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Move only folders and skipping files

How do I move all folders and its contents from a directory A to another directory B, skipping all files in Directory A ? ---------- Post updated at 12:53 PM ---------- Previous update was at 12:42 PM ---------- Ok. Got it. mv /A/*/ /B/ (1 Reply)
Discussion started by: DHeisenberg
1 Replies

2. Shell Programming and Scripting

Script to move files in multiple folders

Hello all, I would appreciate any help to write a script. I have folder A which contains over 30 thousands xml files, I would like create multiple folders and move those files (500 in each folders). Thank you (1 Reply)
Discussion started by: mmsiddig
1 Replies

3. Solaris

Move files into different folders based on its month

Hi All, I want to move the files in to different folders based on the files month in the file timestamp. For example All the september files in the directory should moves into the folder "sep_bkp_files" , August files in to aug_bkp_files folder... Please help me to achive the above... (10 Replies)
Discussion started by: velava
10 Replies

4. Shell Programming and Scripting

Move all files but not folders to a new folder

Hi, I have a sub directory with a number of files and folders. What i want is a subdirectory with just folders and not files for cleanliness sake. So I want to move the files into the new folder but keep the folders in the same place. Move all files (but not folders) to new folder. I am... (4 Replies)
Discussion started by: Hopper_no1
4 Replies

5. Shell Programming and Scripting

Help with auto-detect new files/folders then zip and move script

Hello, I need a simple script to Auto-detect new files and folders in the directory. And then I need to zip the new files and bzip2 new folders and move them out of that folder where I am detecting changes to the other folder. Remember, I need simple one. If anyone could do it fast, I may... (1 Reply)
Discussion started by: juzt1s
1 Replies

6. Shell Programming and Scripting

Shell script to arrange files into several folders

Hello this is the script Im working on I have a picture collection that I rescued from a hard drive and there are thousands of pictures saved in one folder. What I need is to create several folders and put lets say around 200 pictures in each folder. At the end instead of having one huge... (8 Replies)
Discussion started by: kizofilax
8 Replies

7. Shell Programming and Scripting

Move files to Folders

Hi Friends, Below is my requirement and i am not clear how to approach this issue in unix programming. I have a folder with 2500 files. The files are in below format. 1234_name1.txt 1234_name123.txt 4567_name1.txt 4567_name123.txt and i need a program which will read each file from this... (5 Replies)
Discussion started by: diva_thilak
5 Replies

8. UNIX for Dummies Questions & Answers

Move folders containing certain files

Hello, How can I move just the folders that contains files modified n days ago? Source tree: |-- SourceFolder | |-- Subfolder1 | | |-- file1.dat | | `-- file2.dat | |-- Subfolder2 | | |-- filea.dat | | `-- fileb.dat Destination tree: |-- ... (3 Replies)
Discussion started by: xavix
3 Replies

9. UNIX for Dummies Questions & Answers

how to move files into different folders based on filename

I need to move a bunch of files into folders that have the same name. I wanted to either do this with some filter command or some type of batch file that I could save that would already include all of the mv commands since I will have to do this process often. Whatever method you think is easier. ... (7 Replies)
Discussion started by: italia5
7 Replies
Login or Register to Ask a Question