ใช้ Bash
ดังนั้นสมมติว่าฉันมีไฟล์หลายไฟล์วางอยู่ในไดเรกทอรีหลัก~/src
ฉันต้องการคว้าไฟล์ทั้งหมดที่ตรงกับคำต่อท้ายและย้าย (หรือคัดลอก) ไปยัง~/dist
ไดเรกทอรี
สมมติว่าเพื่อจุดประสงค์นี้ว่าชื่อไฟล์ทั้งหมดมีแบบแผนการตั้งชื่อนี้:
<filename_prefix>.<filename_suffix>
ฉันพบว่านี่เป็นวิธีที่รวดเร็วในการรับไฟล์ทั้งหมดโดยเฉพาะfilename_suffix
และวางไว้ในโฟลเดอร์ dist:
mkdir ~/dst
find source -name "*.xxx" -exec mv -i {} -t ~/dst \;
ตอนนี้ขั้นตอนต่อไป ... ฉันจะใช้ผลลัพธ์การค้นหาในกรณีนี้filename
และใช้filename_prefix
เพื่อสร้างไดเรกทอรีที่มีชื่อเดียวกัน~/dist
แล้วย้าย (หรือคัดลอก) ไฟล์ทั้งหมดที่มีคำนำหน้านั้นลงในไดเรกทอรีที่เหมาะสมได้อย่างไร
mkdir ~/dst
find source -name "*.xrt,*.ini,*.moo" -exec mv -i {} -t ~/dst \;
โดยพื้นฐานแล้วฉันจะเปลี่ยนคำสั่งด้านบนได้อย่างไร (หรืออาจใช้คำสั่งอื่น) เพื่อสร้างโครงสร้างเช่นนี้
(ขาออก)
~/dist/people/people.xrt
~/dist/games/games.xrt
~/dist/games/games.moo
~/dist/games/games.ini
~/dist/monkeys/monkeys.ini
~/dist/monkeys/monkeys.xrt
จากต้นไม้ไดเรกทอรีเช่นนี้?
(INPUT)
~/src/xrt/people.xrt
~/src/xrt/games.xrt
~/src/conf/games.ini
~/src/pack/monkeys.xrt
~/src/e344/games.moo
~/src/e344/monkeys.moo
~/src/en-us/monkeys.ini