ฉันมีไฟล์ JPEG หลายไฟล์ที่มีชื่อเหมือนกัน (เช่น "orig.jpg") แต่ละไฟล์ในไดเรกทอรีย่อยแยกกัน แต่ละไดเรกทอรีย่อยมีชื่อที่ไม่ซ้ำกัน (เช่น xplmz3nc5n, tyrn5m6ktv, ฯลฯ ... )
ฉันต้องการเปลี่ยนชื่อ jpegs ตามวันที่ / เวลาที่สร้าง (เช่น 20120629_142536.jpg ฯลฯ )
ฉันสามารถใช้ photoshop เพื่อเปลี่ยนชื่อแบทช์แต่ละไฟล์ด้วยตัวระบุที่ไม่ซ้ำกัน คุณสมบัติหลักที่ได้รับอนุญาตนี้คือความสามารถของ photoshop ในการ "รวมไดเรกทอรีย่อยทั้งหมด" ในกระบวนการแบทช์ ฉันหวังว่าจะสามารถใช้ exiftool เพื่อเปลี่ยนชื่อไฟล์เพื่อรวมวันที่สร้าง (สำหรับการทำรายการง่าย) น่าเสียดายที่กระบวนการเปลี่ยนชื่อชุด photoshop จะเขียนวันที่สร้างไฟล์เป็นวันที่วันนี้ ...
ข้อเสนอแนะใด ๆ เกี่ยวกับวิธีการแบทช์เปลี่ยนชื่อไฟล์ในชุดของไดเรกทอรีย่อยโดยใช้พูดคำสั่ง terminal?
แก้ไข
คำตอบที่นี่และรับผลลัพธ์ต่อไปนี้ในเทอร์มินัล
cd ~/foo
for dir in *; do
t=`stat -c %y "$dir" | awk '{print $1"-"$2}' |
cut -d ":" -f 1,2 | sed 's/://'`
mv "$dir" "$t"_"$dir";
done
และได้รับ
สถิติ: ตัวเลือกที่ผิดกฎหมาย - การใช้งาน c: สถิติ [-FlLnqrsx] [รูปแบบ -f] [-t timefmt] [ไฟล์ ... ] สถิติ: ตัวเลือกที่ผิดกฎหมาย - การใช้งาน c: สถิติ [-FlLnqrsx] [-f รูปแบบ] [ -t timefmt] [ไฟล์ ... ] stat: ตัวเลือกที่ผิดกฎหมาย - การใช้งาน c: stat [-FlLnqrsx] [รูปแบบ -f] [-t timefmt] [ไฟล์ ... ]
(เช่นฉันลองสองวิธีที่แตกต่างกัน ... )