Score:3

ไฟล์ทั้งหมดในโฟลเดอร์หายไปเนื่องจากการพิมพ์ผิดขณะใช้ `mv`

ธง jp

ฉันยังใหม่กับ bash และฉันพยายามเปลี่ยนชื่อไฟล์ทั้งหมดในไดเร็กทอรีเป็น md5 checksum ด้วยวิธีต่อไปนี้

r@r:~ก$ช
$ สำหรับ F ใน *; ทำ
> mv "$F" "$(md5sum "$i")"
> เสร็จแล้ว
r@r:~/g$ ลส
'd458d56dd4ab8c2b335da66e0bcab924 nRUNO5wt3JRN3pBt.mp4'

ฉันพิมพ์ผิดและบรรทัด mv "$F" "$(md5sum "$i")" ควรจะเป็น mv "$F" "$(md5sum "$F")" ถ้าฉันไม่ผิด. ตอนนี้ไฟล์ทั้งหมดในโฟลเดอร์หายไป เหลือแต่ไฟล์เดียว

ไฟล์ถูกลบหรือย้ายไปที่ใดที่หนึ่งหรือไม่? มีวิธีใดที่จะกู้คืนได้หรือไม่?

เมื่อฉันพยายามจำลองสถานการณ์ในโฟลเดอร์ที่มีไฟล์ "1.png" อยู่ในนั้น สิ่งต่อไปนี้จะเกิดขึ้น

r@r:~/a$ sh
$ สำหรับ F ใน *; ทำ
> mv "$F" "$(md5sum "$i")"
> เสร็จแล้ว
md5sum: '': ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
mv: ไม่สามารถย้าย '1.png' เป็น '': ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
cn flag
ไฟล์เหล่านั้นจะไม่สามารถกู้คืนได้ ถ้าคุณไม่ได้สำรองข้อมูลไว้ แต่ละไฟล์ถูกเขียนทับโดยไฟล์ถัดไป เหลือเพียงไฟล์สุดท้าย
Score:5
ธง it

อาจจะไม่. พิจารณาว่าลูปของคุณ "ทำงาน" อย่างไร และแบบไหน เอ็มวี คำสั่งจะถูกดำเนินการ

สำหรับไฟล์แรก คุณดำเนินการ

mv the_file "$(md5sum $i)"

แต่ตั้งแต่ "$(md5sum "$i")" ไม่เปลี่ยนแปลงเมื่อคุณวนซ้ำ คำสั่งสำหรับไฟล์ถัดไปคือ:

mv the_2nd_file "$(md5sum "$i")"

แทนที่ไฟล์แรก ไฟล์แรกจะถูกลบ และบล็อกดิสก์จะถูกทำเครื่องหมายเป็น "ว่าง"

สิ่งเดียวกันนี้เกิดขึ้นกับไฟล์ที่ 3 ถึง Nth เหลือแต่ไฟล์สุดท้ายชื่อ "$(md5sum "$i")".

คุณมีการสำรองข้อมูลหรือไม่?

เมื่อเขียนคำสั่งที่ทรงพลัง/อันตรายเพื่อใช้กับไฟล์จำนวนมาก ให้ใช้ เสียงสะท้อน:

สำหรับ f ใน * ; ทำ
 echo mv $f "$(md5sum "$i")"
เสร็จแล้ว

จะแสดงข้อผิดพลาดของคุณ

BTW ชื่อตัวแปรตัวพิมพ์ใหญ่ [A-Z] มักใช้เพื่อสื่อสารกับแอปพลิเคชัน หากคุณใช้ชื่อตัวพิมพ์เล็ก [a-z] ในสคริปต์ของคุณ คุณจะไม่ซ้ำซ้อนกัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา