ฉันประสบปัญหาเช่นนี้ ...
จริงๆแล้วคุณสามารถประมวลfind
ผลเอาต์พุตcopy
คำสั่งในคำสั่งได้สองวิธี
หากfind
เอาต์พุตของคำสั่งไม่มีช่องว่างเช่นถ้าชื่อไฟล์ไม่มีที่ว่างคุณสามารถใช้คำสั่งที่กล่าวถึงด้านล่าง:
ไวยากรณ์: find <Path> <Conditions> | xargs cp -t <copy file path>
ตัวอย่าง: find -mtime -1 -type f | xargs cp -t inner/
แต่ส่วนใหญ่แล้วไฟล์ข้อมูลการผลิตของเราอาจมีที่ว่างอยู่ในนั้น เวลาส่วนใหญ่คำสั่งที่กล่าวถึงด้านล่างจึงปลอดภัยกว่า:
ไวยากรณ์: find <path> <condition> -exec cp '{}' <copy path> \;
ตัวอย่าง find -mtime -1 -type f -exec cp '{}' inner/ \;
ในตัวอย่างที่สองส่วนสุดท้ายเช่นเซมิโคลอนก็ถือเป็นส่วนหนึ่งของfind
คำสั่งเช่นกันซึ่งควรจะใช้ Escape ก่อนกดปุ่ม Enter มิฉะนั้นคุณจะได้รับข้อผิดพลาดเช่นนี้
find: missing argument to `-exec'
ในกรณีของคุณคัดลอกไวยากรณ์คำสั่งที่ไม่ถูกต้อง/home/shantanu/tosend
ในการคัดลอกไฟล์พบลงใน คำสั่งต่อไปนี้จะทำงาน:
find /home/shantanu/processed/ -name '*2011*.xml' -exec cp {} /home/shantanu/tosend \;
\;
อะไร?