ใน linux ฉันจะสร้างโฟลเดอร์จากไฟล์ได้อย่างไร


1

ฉันรันคำสั่งต่อไปนี้เพื่อค้นหา epub ทั้งหมดและย้ายไปยังไดเรกทอรี:

find . -iname "*.epub" -exec mv {} /data/EPUB \;

ที่สร้างไฟล์พิเศษด้วย epub ทั้งหมดที่ต่อกันเข้าด้วยกัน มีวิธีใดบ้างที่จะแยกพวกเขาออกจากกันอีกครั้ง? มีคำสั่งให้เปลี่ยนไฟล์ super เป็นโฟลเดอร์หรือไม่?

คำตอบ:


5

หากคุณไม่ได้สร้างไดเรกทอรี/data/EPUBก่อนจากนั้นสิ่งที่คุณทำคือเปลี่ยนชื่อแต่ละไฟล์ทีละชื่อเป็นไฟล์ที่มีชื่อ/data/EPUB- เขียนทับไดเรกทอรีก่อนหน้าในแต่ละครั้ง

สิ่งที่คุณมีตอนนี้ไม่ใช่ "superfile" แต่/data/EPUBเป็นไฟล์. epub สุดท้ายที่ถูกย้ายและไฟล์. epub อื่น ๆ ทั้งหมดได้สูญหายไป (เนื่องจากถูกเขียนทับโดยการย้ายครั้งต่อไป)

ไม่มีวิธีที่ตรงไปตรงมาเพื่อดึงพวกเขา

ฉันขอแนะนำให้ถอดอุปกรณ์ออกทันที (ถ้าเป็นไปได้) และไม่ทำการเขียนเพิ่มเติมจากนั้นใช้โปรแกรมเช่นTestDiskเพื่อพยายามกู้คืนไฟล์ที่เขียนทับ (เช่นคำแนะนำโดยละเอียดที่นี่ )

ในอนาคตฉันแนะนำให้ใช้mv -iซึ่งจะแจ้งให้เขียนทับจึงจับข้อผิดพลาดเช่นนี้

ฉันยังแนะนำให้สร้างนิสัยในการวางท้าย/ชื่อไดเรกทอรีซึ่งจะจับข้อผิดพลาดดังกล่าวโดยล้มเหลวหากไดเรกทอรีไม่อยู่ (แทนที่จะสมมติว่าเป็นไฟล์) เช่น:

find . -iname "*.epub" -exec mv -i {} /data/EPUB/ \;

1
++++ 1 ทุกครั้งที่คุณใช้คำสั่ง move เสมอใช้เครื่องหมายสแลชต่อท้าย แม้แต่ผู้ดูแลระบบลินุกซ์ขั้นสูงก็สามารถถูกกัดได้ (อะแฮ่มอะแฮ่ม) เพราะตัวอย่างเช่นเราสร้างสคริปต์สำรองที่คัดลอกไฟล์ไปยังไดเร็กตอรี่ไดเรกทอรี คาดเดาอะไร ปีใหม่เกิดขึ้นและฉันลืมที่จะสร้างไดเรกทอรี (หรือแทนที่จะลืมใส่การตรวจสอบข้อผิดพลาดในสคริปต์เพื่อสร้างไดเรกทอรีหากไม่มี) จากนั้นการสำรองข้อมูลทั้งหมดของคุณจะถูกเขียนทับเนื่องจากไม่มีการสร้างไดเรกทอรี
Ben
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.