ฉันไม่ได้เก็บถาวรที่สร้างความยุ่งเหยิงของไฟล์ลงในไดเรกทอรีที่เป็นระเบียบของฉัน ตัวอย่างเช่น:
user@comp:~/tidy$ tar xvf myarchive.tar
file1
file2
dir1/
dir1/file1
dir1/subdir1/
dir1/subdir1/file1
dir2/
dir2/file1
...
ฉันคาดหวังว่าไฟล์ tar จะถูกจัดระเบียบในโฟลเดอร์เดียว (เช่นmyarchive/
) แต่มันไม่ได้! ตอนนี้ฉันมีไฟล์และไดเร็กตอรี่ถึง 190 ไฟล์ที่มีการปิดบังแบบดิจิทัลในสิ่งที่เป็นไดเรกทอรีที่จัดระเบียบ ไฟล์ที่ไม่ได้จัดทำเหล่านี้จำเป็นต้องกำจัดให้หมด
มีวิธีใดในการ "เลิกทำ" สิ่งนี้และลบไฟล์และไดเรกทอรีที่ดึงมาจากไฟล์เก็บถาวรนี้หรือไม่?
ขอบคุณสำหรับคำตอบที่ดีเยี่ยมด้านล่าง โดยสรุปนี่คือสิ่งที่ใช้งานได้กับสองขั้นตอน (1) ลบไฟล์และ (2) ลบโครงสร้างไดเรกทอรีว่างในลำดับการบรรจุย้อนกลับ (เพื่อลบไดเรกทอรีด้านนอกก่อน):
tar tf myarchive.tar | xargs -d'\n' rm
tar tf myarchive.tar | tac | xargs -d'\n' rmdir
และปลอดภัยมากขึ้นยังสามารถดูตัวอย่างแห้งทำงานของคำสั่งโดยท้ายหลังecho
xargs
xargs
( tac
แทนที่จะsort -r
เป็นแค่เครื่องสำอาง) แต่คุณยอมรับคำตอบด้วยการทดแทนกระบวนการที่ตามที่คุณอธิบายไว้ในความคิดเห็นที่ไม่เหมาะสมกับคุณ? นอกจากนี้โปรดให้xargs -d'\n'
สวิตช์ในโพสต์ของคุณหากคุณต้องการสรุปสำหรับผู้ใช้ในอนาคตดังนั้นพวกเขาจะไม่ถูกเว้นวรรคในชื่อไฟล์
-d'\n'
จนถึงตอนนี้และจากการวิเคราะห์เพิ่มเติมคำตอบของคุณก็ใกล้เคียงกับสิ่งที่ฉันใช้
-d'\n'
โกหกในความจริงที่ว่าถ้าคุณไม่บอกxargs
ให้แยกข้อโต้แย้งในบรรทัดใหม่ (ซึ่งเป็นสิ่งที่คุณกำลังให้อาหาร) แต่ในช่องว่างแล้วไฟล์ที่มี ชื่อfolder1/some file
จะได้รับการอ่านและfolder1/some
name