เมื่อฉันเรียกใช้คำสั่งต่อไปนี้:
> 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
?