次のコマンドを実行すると:
> mkdir some_dir
> find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} some_dir
次のような数百行が表示されます。
mv: target `/foo/bar/XX.csv` is not a directory
どうして?xargsが実行されると思った:
mv /foo/barXX.csv some_dir
find
見つかったすべてのファイルに対して。どうしたの?ちなみにこれはzshで
更新:
Update1:
私は試した:
find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} -t some_dir
しかし、私は次のような数行を得ました:
mv: cannot stat `{}': No such file or directory
コマンドは私のファイルを正しく移動していると思いますが。
Update2:
単独で-t
使用する場合、オプションは必要ないようですmv
。例えば
> touch file1.txt
> touch file2.txt
> mkdir my_dir
> mv file1.txt file2.txt my_dir
うまくいきます。なぜ-t
使用する必要があるのxargs
ですか?