ฉันเพิ่งสูญเสียคอลเล็กชั่นเสียงไปโดยที่ฉันทำผิดพลาดไป :-(
ดีใจมากฉันมีการสำรองข้อมูลล่าสุดค่อนข้างมาก แต่มันก็ยังน่ารำคาญนอกเหนือจากของคุณอย่างแท้จริงผู้ร้ายคนอื่น ๆ ที่ทำอันตรายmv
ซึ่งจะแสดงดังต่อไปนี้:
ไฟล์เสียงมีรูปแบบที่แน่นอน:
ARTIST - Some Title YY.mp3
ที่YY
เป็นสเปคปี 2 หลัก
mkdir 90<invisible control character>
(จนถึงขณะนี้ฉันไม่ทราบว่าฉันได้พิมพ์อักขระเกินหนึ่งในสามซึ่งมองไม่เห็น ... !)
แทนที่จะมีทั้งหมดในไดเรกทอรีเดียวฉันต้องการมีเพลงทั้งหมดปี 1990 ในไดเรกทอรีเดียว ดังนั้นฉันจึงพิมพ์:
find . -name '* 9?.mp3' -exec mv {} 90 \;
ไม่ยากเลยที่จะเข้าใจว่าเกิดอะไรขึ้นใช่มั้ย : ->
ผลลัพธ์ (หายนะ) คือไดเรกทอรีที่ว่างเปล่าบริสุทธิ์ที่เรียกว่า '90 บางสิ่งบางอย่าง '(มีบางอย่างที่เป็นตัวควบคุม "ที่มองไม่เห็น") และไฟล์เดียวหนึ่งไฟล์ที่เรียกว่า' 90 'เขียนทับnครั้ง
ไฟล์ทั้งหมดหายไป : - (((ชัด)
ความปรารถนาmv
จะได้รับการตรวจสอบในเวลาไม่ว่าจะเป็นลายเซ็นของ "ไฟล์" ปลายทาง (จำไว้ใน * NIX: ทุกอย่างคือไฟล์ ) เริ่มต้นด้วยd------
(เช่นdrwxr-xr-x
) และแน่นอนว่าปลายทางนั้นมีอยู่จริงหรือไม่ มีความแตกต่างจากสถานการณ์ดังกล่าวข้างต้นเมื่อคุณก็ลืมไปmkdir
ไดเรกทอรีแรก (แต่แน่นอนคุณคิดว่ามันอยู่ที่นั่น ... )
แม้แต่ระบบปฏิบัติการสัตว์เลี้ยงที่เกลียดชังของเราเริ่มต้นด้วยทุนที่Wทำได้ คุณจะได้รับแจ้งให้ระบุประเภทของปลายทาง (ไฟล์? directory?) หากคุณต้องการ
ดังนั้นฉันสงสัยว่าเรา * NIXers ยังคงต้องเขียน " mv
scriptlet" เพื่อหลีกเลี่ยงความประหลาดใจที่ไม่พึงประสงค์เหล่านี้
mv
ไม่ใช่ปัญหาที่นี่เทคนิคไม่ทราบว่าคุณกำลังย้ายชุดของไฟล์ คุณกำลังเรียกใช้mv
หนึ่งครั้งสำหรับแต่ละไฟล์ นั่นเป็นวิธีการfind -exec ;
ทำงาน หากคุณเคยใช้find -exec +
(เช่นในความคิดเห็นบางส่วน) mv
จะกรีดร้องทันทีที่มันมีอาร์กิวเมนต์มากกว่าหนึ่งข้อ
mv
ไฟล์แต่ละไฟล์อาจจะคิดน้อยลงเล็กน้อยในตอนแรกมันจะ (เหมือนที่ฉันเคยกล่าวไว้ก่อนหน้านี้) เป็นทางออกเดียวที่มีสติเมื่อไฟล์ต้นฉบับกระจัดกระจายในไดเรกทอรีย่อยต่างๆ ในกรณีทดสอบของฉันไฟล์ต้นฉบับทั้งหมดในไดเรกทอรีเดียวไม่ได้หมายความว่าเป็นกรณีทดสอบจริงของฉัน อันที่จริงมันเป็นแค่การทำให้เข้าใจง่ายเพราะฉันอาจจะอธิบายอย่างง่าย ๆ ด้วยตัวเองในภายหลัง นอกจากนี้ยังทำให้การอ่านคำถามใช้เวลาน้อยลงเนื่องจากความยาวลดลง :)
mv
ให้ปลายทางมีอยู่ mv oldfile newfile
เป็นวิธีในการเปลี่ยนชื่อไฟล์และมันโง่ที่คาดว่าnewfile
จะมีอยู่แล้วและเป็นไดเรกทอรี
.mp3
ควรมีชื่อ90
อาจเป็นชื่อที่คุณไม่มีข้อมูลสำรอง