I wanted to move all the files having certain patterns of the current directory to a folder.
Example- I wanted to move all the files starting with nz to foobar directory. I tried it using mv but didn't work out well.
From stackoverflow
-
This will do it, though if you have any directories beginning with nz it will move those too.
for files in nz* do mv $files foobar done
Edit: As shown above this totally over the top. However, for more complex pattern matches you might do something like:
for files in `ls | grep [regexp]` do mv $files foobar done
-
mv nz* foobar
should do it. -
Try to use "mmv", which is installed on most Linux distros.
-
mv nz* foobar/
-
find . | grep "your_pattern" | xargs mv destination_directory
Does the following:
- Finds all files in the current directory
- Filters them according to your pattern
- Moves all resulting files to the destination directory
lhunath : Don't grep filenames. Especially not with find(1): it has -name. Also don't use xargs without -0. Especially not with find(1): it has -exec.Benedikt Eger : Except for the fact that find can search for names what could go wrong with grepping filenames?
0 comments:
Post a Comment