เปิดเครื่องรูดวิธีการตัดแต่งไดเรกทอรีชั้นนำ


14

ฉันมีไฟล์ zip unzip -l myarchive.zipคำสั่งให้รายการนี้:

top/subtop/files/1.txt
top/subtop/files2/2.txt
etc

โฟลเดอร์รูทเป็น top / subtop สำหรับไฟล์ทั้งหมด วิธีการแตกไฟล์เหล่านั้นโดยไม่มีสองโฟลเดอร์บนสุด / subtop

เช่นเมื่อฉันอยู่ในไดเรกทอรี / home / myuser / public_html files/1.txtและfiles2/2.txtจะถูกแยกไปยังไดเรกทอรีนั้นโดยตรง

ฉันพยายามunzip myarchive.zip top/subtop/*แต่มันสร้างไดเรกทอรีบน / subtop ต่อไป

คำตอบ:


9

น่าเสียดายที่คุณทำไม่ได้ ทางเลือกที่แท้จริงของคุณเพียงแค่ย้ายพวกมันหลังจากทำการแตก


อืมดีน่ารู้ ฉันถามสิ่งนี้เพราะไม่กี่วันที่ผ่านมาเมื่อสร้างไฟล์เก็บถาวรมันมีการเพิ่มเส้นทางบางอย่างจากด้านบนโดยไม่ได้ตั้งใจ ดังนั้นจึงมีปัญหาในการขยายไฟล์เนื่องจากเส้นทางด้านบนเพิ่มเติม อย่างไรก็ตามฉันไม่สามารถทำซ้ำได้ในวันนี้ - วันนี้มันใช้ได้ดีเช่นเมื่ออยู่ในไดเรกทอรีบนสุด / subtop และทำไฟล์ zip -r files.zip * มันไม่ได้เพิ่มเส้นทางด้านบน / subtop เป็นคำนำหน้าของเส้นทางของไฟล์ ฉันคิดว่าฉันทำตามคำสั่งเดียวกัน แต่ผลลัพธ์ที่ได้นั้นแตกต่างกันไปดังนั้นจึงไม่จำเป็นต้องดึงไดเรคทอรี่อันดับต้น ๆ เมื่อทำการขยายไฟล์
camcam

โปรดทราบว่ามันเป็นไปได้ที่จะไม่สนใจไดเรกทอรีทั้งหมด (เพียงแค่วางไฟล์ทั้งหมดที่ติดกัน) unzip -jด้วย
Skylar Ittner

4

คุณอาจต้องการลองtarคำสั่งซึ่งมี--strip-componentsคุณสมบัติและสามารถทำงานกับไฟล์ซิป


2
ไม่ทำงานกับ tar (GNU tar) 1.15.1:tar: This does not look like a tar archive tar: Error exit delayed from previous errors
Kevin Panko

2
tar ของ FreeBSD สามารถจัดการไฟล์ ZIP ได้ การใช้งาน tar แบบอื่นนั้นไม่น่าเสียดาย
Mikhail T.

1
สำหรับผู้ใช้เดเบียน tar ของ FreeBSD มีให้ใช้เป็น bsdtar (ติดตั้ง apt-get bsdtar) หากคุณต้องการใช้ tar เพื่อแตกไฟล์ zip
Niklas B

0

ฉันใช้คำสั่งนี้เพื่อคัดลอกไฟล์ทั้งหมดไปยังไดเรกทอรีไฟล์รากหลังจากแตกไฟล์ซิปทั้งหมดมันใช้งานได้ดี ประหยัดเวลาได้อย่างมาก:

for /r %f in (00P*) do @copy "%f" 

( http://mlichtenberg.wordpress.com/2011/01/25/command-line-fun-how-to-flatten-a-folder-hierarchy/ )


5
คุณรู้หรือไม่ว่านี่คือคำสั่ง DOS และไม่มีอะไรเกี่ยวข้องกับบรรทัดคำสั่ง Linux ใช่มั้ย
MestreLion

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.