Ubuntu – mv files with | xargs

command linemv

I'm just trying to move a bunch of files (not symlinks) out of my /etc/apache/sites-enabled folder into the /etc/apache/sites-available folder with the following:

/etc/apache2/sites-enabled$ find . -maxdepth 1 -type f | xargs mv {} ../sites-available/

but I'm an ubuntu n00b and am getting this error:

mv: target `./real-file' is not a directory

where 'real-file' is a test file I've set up on my dev environment. I'm trying to tidy up someone else's mess on a production server 😉

Best Answer

You could try the -exec option with find command,

/etc/apache2/sites-enabled$ sudo find . -maxdepth 1 -type f -exec mv {} /etc/apache2/sites-available \;

For moving files owned by root, you need sudo permissions.

If you want to use xargs command then add -I option to it.

find . -maxdepth 1 -type f | sudo xargs -I {} mv {} /etc/apache2/sites-available/
Related Question