แน่นอน คุณสามารถทำได้ด้วยสคริปต์ 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 ตัวเลือกระบุปลายทาง (เราให้ไดเรกทอรีปลายทางทันทีหลังจากนั้น); มิฉะนั้นจะถือว่าปลายทางเป็นอาร์กิวเมนต์สุดท้าย