Cuando ejecuto el siguiente comando:
> mkdir some_dir
> find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} some_dir
Recibo cientos de líneas que dicen:
mv: target `/foo/bar/XX.csv` is not a directory
¿Por qué? Pensé que los xargs se ejecutarían:
mv /foo/barXX.csv some_dir
por cada archivo que find
encuentre. ¿Que esta pasando? Por cierto, esto es con zsh
Actualizar:
Actualización1:
Lo intenté:
find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} -t some_dir
pero luego obtuve algunas líneas como:
mv: cannot stat `{}': No such file or directory
aunque creo que el comando está moviendo mis archivos correctamente.
Actualización2:
Parece que no necesito la -t
opción cuando lo uso mv
solo. Por ejemplo
> touch file1.txt
> touch file2.txt
> mkdir my_dir
> mv file1.txt file2.txt my_dir
funciona bien. ¿Por qué necesito -t
al usar xargs
?