Help for shell scripts for moving all files from one directory to another


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help for shell scripts for moving all files from one directory to another
# 29  
Old 02-21-2012
Quote:
find /usr/bin/sou/ -name "*.txt" -o -name "*.csv" | xargs -I {} mv '{}' /usr/bin/sou/temp/
alister is correct.
The command needed the "or" condition to be in escaped brackets.:
Code:
find /usr/bin/sou/ -name \( "*.txt" -o -name "*.csv" \) | xargs -I {} mv '{}' /usr/bin/sou/temp/


Ps. I can't verify that "xargs" command but it looks unlikely.
# 30  
Old 02-21-2012
Quote:
Originally Posted by rangarasan
Code:
find /usr/bin/sou/ -name "*.txt" -o -name "*.csv" -exec  mv {} /usr/bin/sou/temp/ \;

Quote:
Originally Posted by alister
That will not work correctly due to operator precedence (the -exec only occurs when the basename matches *.csv).
Quote:
Originally Posted by rangarasan
@alister: Thanks, Please elabrate the issue.
When find parses it arguments, everthing that follows the last pathname argument (/usr/bin/sou/) is a primary argument (-name, -type, -exec, and so on). Each primary argument is a term in a boolean expression. In that expression's grammar, the logical AND operator (-a) has higher precedence than the logical OR operator (-o). When two primary arguments are not the operands of either -a or -o, -a is implicitly assumed.

Starting with your original command:
Code:
find /usr/bin/sou/ -name "*.txt" -o -name "*.csv" -exec  mv {} /usr/bin/sou/temp/ \;

Adding the implicit AND operator:
Code:
find /usr/bin/sou/ -name "*.txt" -o -name "*.csv" -a -exec  mv {} /usr/bin/sou/temp/ \;

Since -a is higher precedence than -o, the equivalent with precedence made explicit:
Code:
find /usr/bin/sou/ -name "*.txt" -o \( -name "*.csv" -a -exec  mv {} /usr/bin/sou/temp/ \; \)

As you can now see, find will only mv the file if the basename matches *.csv. Note that nothing at all will happen when the basename matches *.txt. The -exec will not occur and since there's an -exec in the expression, find will not perform an implicit -print.

What you meant to do:
Code:
find /usr/bin/sou/ \( -name "*.txt" -o -name "*.csv" \) -exec  mv {} /usr/bin/sou/temp/ \;

And even then, that may not be correct. The original post's attempt suggests that descending into subdirectories is not desired. If that's the case, this find command is still not adequate.

Regards,
Alister
These 2 Users Gave Thanks to alister For This Post:
# 31  
Old 02-22-2012
all the files are moving including subdirectiores files also.how can i ll move only files present in the directory to one specified subdriectires which not move the files present in the other subdirectories
# 32  
Old 02-22-2012
By not using find... e.g. post #22
post#23:
How did you copy/paste? using a PC with windows? saved e.g. with notepad and transfered to unix?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell scripting for moving folder specific files into target directory of that country folder.

I need help to write shell script to copy files from one server to another server. Source Directory UAE(inside i have another folder Misc with files inside UAE folder).I have to copy this to another server UAE folder( Files should be copied to UAE folder and Misc files should be copied in target... (3 Replies)
Discussion started by: naresh2389
3 Replies

2. 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

3. Solaris

Moving directory structure and scripts from HP to Solaris

Hi, I am presently working in a migration project from HP Unix to Sun Solaris. I need to place all the directory structures, shell scripts and users into Sun Solaris. By doing this task manually there is a possibility for discrepencies. So any tools are there to do these kind of... (4 Replies)
Discussion started by: nag_sathi
4 Replies

4. 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

5. 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

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