moving large number of files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting moving large number of files
# 1  
Old 07-19-2007
moving large number of files

I have a task to move more than 35000 files every two hours, from the same directory to another directory based on a file that has the list of filenames

I tried the following logics

(1)
find . -name \*.dat > list

for i in `cat list` do mv $i test/ done

(2)
cat list|xargs -i mv "{}" test/


logic 1 takes 40mins and logic 2 in 25 mins


Is there any other faster way I can move files based on a file that has the list of filenames.
# 2  
Old 07-19-2007
Are you sure you need the list?

Code:
mv *.dat test

P.S. May be tar/cpio are better for large number of files ...

Last edited by radoulov; 07-19-2007 at 12:38 PM.. Reason: Addition
# 3  
Old 07-19-2007
I don't know that this would be faster, but it should execute "mv" fewer times
(You'd have to figure out an appropriate number for -s)

Code:
xargs -s 1000 echo  < list | sed 's+^+mv +;s+$+ test/+' |sh -

If you have perl and the test directory is in the same partition, you might try
Code:
perl -nle 'rename "$_", "test/$_";' list

# 4  
Old 07-19-2007
Just a suggestion..... Not sure if this is even an option for your environment.

Don't move the files first. Just create links from the old dir to the new dir. run the link command first. then come back and move the files to over write the link. this way the files are available very quickly and your move cmd can take 40 minutes.

Just thinking outside the box.
# 5  
Old 07-19-2007
Quote:
Originally Posted by radoulov
Are you sure you need the list?

Code:
mv *.dat test

P.S. May be tar/cpio are better for large number of files ...
I doubt this command, because OP had said 35000 files and more.

What if the number of command line arguments to ' mv ' exceeds the permissible limit ?

Its quite possible ! Smilie

Last edited by matrixmadhan; 07-19-2007 at 03:11 PM.. Reason: spell check
# 6  
Old 07-19-2007
Here is another way,

with "list" as the file with list of filenames

split the list file into n chunks .. list_1, list_2 ... list_n

you should arrive at a bench mark say 10 to 50 or something like that

now operate any of the logic on the n list_* files simulatenously

and this should definitely be faster as mv is executed in multiples. Smilie
# 7  
Old 07-19-2007
Quote:
Originally Posted by matrixmadhan
I doubt this command, because OP had said 35000 files and more.

What if the number of command line arguments to ' mv ' exceeds the permissible limit ?

Its quite possible ! Smilie
Didn't think about that Smilie

So, with recent zsh:

Code:
setopt nomatch
while set -- *.dat([1]);do
mv -- *.dat([1,1000]) test
done

Adjust 1000 for your limit.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Removing large number of temp files

Hi All, I am having a situation now to delete a huge number of temp files created during run times approx. 16700+ files. We have never imagined that we will get this this much big list of files during run time. It worked fine for lesser no of files in the list. But when list is huge we are... (7 Replies)
Discussion started by: mad man
7 Replies

2. Shell Programming and Scripting

Sftp large number of files

Want to sftp large number of files ... approx 150 files will come to server every minute. (AIX box) Also need make sure file has been sftped successfully... Please let me know : 1. What is the best / faster way to transfer files? 2. should I use batch option -b so that connectivity will be... (3 Replies)
Discussion started by: vegasluxor
3 Replies

3. UNIX for Dummies Questions & Answers

Rename a large number of files in subdirectories

Hi, I have a large number of subdirectories (>200), and in each of these directories there is a file with a name like "opp1234.dat". I'd like to know how I could change the names of these files to say "out.dat" in all these subdirectories in one go. Thanks! (5 Replies)
Discussion started by: lost.identity
5 Replies

4. Shell Programming and Scripting

Moving and renaming large ammount of files

Hey, I'm kinda new to the shell scripting and I don't wanna mess things up yet :) Looking for a solution to the following: I need to move all the files like "filename.failed.dateandtime" to another directory also renaming them "filename.ready". I can't figure how to do this with multiple files... (4 Replies)
Discussion started by: sg3
4 Replies

5. UNIX for Dummies Questions & Answers

Delete large number of files

Hi. I need to delete a large number of files listed in a txt file. There are over 90000 files in the list. Some of the directory names and some of the file names do have spaces in them. In the file, each line is a full path to a file: /path/to/the files/file1 /path/to/some other/files/file 2... (4 Replies)
Discussion started by: inakajin
4 Replies

6. Shell Programming and Scripting

Concatenation of a large number of files

Hellow i have a large number of files that i want to concatenate to one. these files start with the word 'VOICE_' for example VOICE_0000000000 VOICE_1223o23u0 VOICE_934934927349 I use the following code: cat /ODS/prepaid/CDR_FLOW/MEDIATION/VOICE_* >> /ODS/prepaid/CDR_FLOW/WORK/VOICE ... (10 Replies)
Discussion started by: chriss_58
10 Replies

7. UNIX for Dummies Questions & Answers

questing regarding tar large number of files

I want to tar large number of files about 150k. i am using the find command as below to create a file with all file names. & then trying to use the tar -I command as below. # find . -type f -name "gpi*" > include-file # tar -I include-file -cvf newfile.tar This i got from one of the posts... (2 Replies)
Discussion started by: crux123
2 Replies

8. Shell Programming and Scripting

Need help combining large number of text files

Hi, i have more than 1000 data files(.txt) like this first file format: 178.83 554.545 179.21 80.392 second file: 178.83 990.909 179.21 90.196 etc. I want to combine them to the following format: 178.83,554.545,990.909,... 179.21,80.392,90.196,... (7 Replies)
Discussion started by: mr_monocyte
7 Replies

9. Shell Programming and Scripting

Moving extremely large number of files to destination

Hello Techies, m here with a small issue. Have read out all the relavent threads on unix.com but it was not so good sol. for me. It's a simple & known issue. I want to move lots of files to dest folder. Actually I want to pick up 1 year older files, but that is even taking lots of... (16 Replies)
Discussion started by: kedar.mehta
16 Replies

10. Shell Programming and Scripting

Script to Compare a large number of files.

I have a large Filesystem on an AIX server and another one on a Red Hat box. I have syncd the two filesystems using rsysnc. What Im looking for is a script that would compare to the two filesystems to make sure the bits match up and the number of files match up. its around 2.8 million... (5 Replies)
Discussion started by: zippdawg2001
5 Replies
Login or Register to Ask a Question