mv and exlude list

Peter Langfelder peter.langfelder at gmail.com
Thu May 7 16:14:17 UTC 2009


On Thu, May 7, 2009 at 8:38 AM, Guillaume CHARDIN
<guillaume.chardin at gmail.com> wrote:
>
> Hi, maybe some scripting genius gonna help me :D
>
> I need to move some file from one directory to other with some exclusions.
> Ex: move files from "/data/product/" to "/data/archives/2005" while
> the "*.dat" file/dirs stay in the right place.
>
> $mv /data/product/* !(/data/product/*.dat) /data/archives/2005
>
>
> If you have a solution, please tell me :)
> Thanks for your time.
>

No genius here, but a solution would be using rsync

rsync -auv --exclude='*.dat' --remove-source-files /data/product
/data/archives/2005/

replace the -avu with -avun for a dry (test) run. The disadvantage is
that files are copied, not moved, so it will take longer.

Alternatively, make a tmp directory somewhere, then

mv /data/product/*.dat /tmp
mv /data/product/* /data/archives/2005/
mv /tmp/* /data/product/

This should also do what you want (?)

Peter




More information about the fedora-list mailing list