Po uruchomieniu następującego polecenia:
> mkdir some_dir
> find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} some_dir
Dostaję setki linii, które mówią:
mv: target `/foo/bar/XX.csv` is not a directory
Dlaczego? Myślałem, że xargs wykona:
mv /foo/barXX.csv some_dir
dla każdego find
znalezionego pliku . Co się dzieje? Nawiasem mówiąc, to jest z Zsh
Aktualizacja:
Aktualizacja 1:
Próbowałem:
find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} -t some_dir
ale potem mam kilka linii, takich jak:
mv: cannot stat `{}': No such file or directory
chociaż myślę, że polecenie poprawnie przenosi moje pliki.
Aktualizacja 2:
Wydaje mi się, że nie potrzebuję tej -t
opcji, kiedy korzystam mv
sam. Na przykład
> touch file1.txt
> touch file2.txt
> mkdir my_dir
> mv file1.txt file2.txt my_dir
działa dobrze. Dlaczego potrzebuję -t
podczas używania xargs
?