Quando eseguo il seguente comando:
> mkdir some_dir
> find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} some_dir
Ricevo centinaia di righe che dicono:
mv: target `/foo/bar/XX.csv` is not a directory
Perché? Ho pensato che xargs avrebbe eseguito:
mv /foo/barXX.csv some_dir
per ogni file che find
trova. Cosa sta succedendo? A proposito, questo è con zsh
Aggiornare:
Update1:
Provai:
find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} -t some_dir
ma poi ho ottenuto alcune righe come:
mv: cannot stat `{}': No such file or directory
anche se penso che il comando stia spostando correttamente i miei file.
Update2:
Non ho bisogno -t
dell'opzione quando uso mv
da solo. Per esempio
> touch file1.txt
> touch file2.txt
> mkdir my_dir
> mv file1.txt file2.txt my_dir
funziona bene. Perché ho bisogno -t
quando uso xargs
?