แน่นอน คุณสามารถทำได้ด้วยสคริปต์ Bash ขนาดเล็กมาก
ฉันถือว่าคุณมีรายชื่อ เลือก. txt
ในไดเร็กทอรีหลักของคุณ ซึ่ง Pictures เป็นไดเร็กทอรีย่อย หากไม่เป็นเช่นนั้น โปรดปรับเส้นทางให้เหมาะสม
ก่อนอื่นให้สร้างไดเร็กทอรีเพื่อย้ายไฟล์เข้าไป ฉันถือว่าคุณเพิ่งเปิดเทอร์มินัลและคุณอยู่ในโฮมไดเร็กตอรี่ของคุณ คุณสามารถย้ายไดเร็กทอรีได้ในภายหลัง
mkdir ผู้ถูกเลือก
ตรวจสอบว่าคุณสามารถค้นหาไฟล์ที่ถูกต้องโดยใช้รายการของคุณดังนี้:
ในขณะที่อ่านบรรทัด -r; หา Pictures -name "$line" -ls; เสร็จสิ้น < เลือกแล้ว txt
หากผลลัพธ์ดูถูกต้อง คุณสามารถคัดลอกไฟล์ได้โดยปรับคำสั่ง:
ในขณะที่อ่านบรรทัด -r; ค้นหารูปภาพชื่อ "$line" -exec cp -vt ChosenOnes {} \; ; เสร็จสิ้น < เลือกแล้ว txt
เราสามารถทำให้ดูดีขึ้นเล็กน้อย:
#!/bin/bash
# อ่านรายการของเราและ
ในขณะที่อ่านบรรทัด -r; ทำ
# ค้นหาไฟล์ในนั้นและคัดลอกไปยังไดเร็กทอรีใหม่
ค้นหารูปภาพ -ชื่อ "$line" -exec cp -vt ChosenOnes {} \;
เสร็จสิ้น < เลือกแล้ว txt
คำอธิบาย
ในขณะที่อ่านบรรทัด -r; ทำสิ่งต่างๆ เสร็จแล้ว < ไฟล์อินพุต
ก ในขณะที่
วนซ้ำทำบางสิ่งต่อไปตราบเท่าที่มีเงื่อนไข ที่นี่เรากำลังขอให้รายการของเราอ่านทีละบรรทัด แต่ละบรรทัดจะถูกใส่เข้าไปในตัวแปร ไลน์
เพื่อให้เราสามารถเรียกใช้คำสั่งบางอย่างกับมันได้ เมื่อเราทำคำสั่งในบรรทัดนั้นเสร็จแล้ว บรรทัดถัดไปจะถูกอ่าน จนกว่าบรรทัดในไฟล์ของเราจะหมด
ค้นหาเส้นทาง -ชื่อ "$line"
เดอะ หา
คำสั่งทำการค้นหาแบบเรียกซ้ำจากเส้นทางที่กำหนด (รูปภาพในกรณีของเรา) ที่นี่เราใช้ -ชื่อ
ตัวเลือกเพื่อค้นหาไฟล์ที่ตรงกับชื่อในรายการ
-ล
เดอะ หา
คำสั่งมีตัวเลือกในการแสดงรายการไฟล์ที่พบ สิ่งนี้มีประโยชน์สำหรับการตรวจสอบสิ่งที่พบก่อนที่จะดำเนินการใดๆ
-exec คำสั่ง {} \;
เดอะ -ผู้บริหาร
ตัวเลือกเพื่อค้นหารันคำสั่งที่กำหนดบนไฟล์ที่พบ (แสดงโดย {}
)
ซีพี -vt
เดอะ -v
ตัวเลือกทำให้ ซีพี
บอกเราว่ากำลังทำอะไรอยู่ เดอะ -t
ตัวเลือกระบุปลายทาง (เราให้ไดเรกทอรีปลายทางทันทีหลังจากนั้น); มิฉะนั้นจะถือว่าปลายทางเป็นอาร์กิวเมนต์สุดท้าย