ขึ้นอยู่กับวิธีสร้างไฟล์ zip บางครั้งมันจะแยกไฟล์ทั้งหมดโดยตรงและบางครั้งมันจะแตกไฟล์ลงในไดเรกทอรีย่อย
หากหลังเป็นจริงฉันจะบังคับให้unzip
คำสั่ง "ละเว้น" ไดเรกทอรีระดับแรกนั้นได้อย่างไร
ตัวอย่าง:
cd /tmp
wget http://omeka.org/files/omeka-1.5.1.zip
mkdir omeka
unzip omeka-1.5.1.zip -d omeka/
cd omeka/
ll
สิ่งที่ฉันได้รับคือ/tmp/omeka/omeka-1.5.1/
:
total 12
drwxr-xr-x 3 root root 4096 2012-05-08 18:44 ./
drwxrwxrwt 6 root root 4096 2012-05-08 18:44 ../
drwxr-xr-x 5 root root 4096 2012-04-20 14:54 omeka-1.5.1/
สิ่งที่ฉันต้องการคือไฟล์ที่แยกไป/tmp/omeka/
(หนึ่งระดับขึ้นไปและไม่มีหมายเลขรุ่นรวมอยู่ในโครงสร้างไดเรกทอรี)
/tmp/omeka/(files)
ฉันรู้ว่าฉันสามารถใช้-j
ตัวเลือกเพื่อ "เส้นทางขยะ" แต่ฉันต้องการเก็บโครงสร้างไดเรกทอรีย่อยไม่ใช่โครงสร้างไดเรกทอรีระดับบนสุด ฉันจะทำสิ่งนี้ได้อย่างไร
/wordpress/
ไดเรกทอรี (ไม่มีหมายเลขเวอร์ชั่น) ในไฟล์ zip มันก็โอเคอยู่unzip
แล้วmv
แต่การควบคุมมันไม่ได้และต้องทำในสองขั้นตอนทำให้ฉันรู้สึกเครียดเล็กน้อย โชคดีที่ Wordpress มี.tar.gz
รสชาติเหมือนกัน :)
cd /tmp/omeka && ln -s -T . omeka-1.5.1
mv
ไฟล์ แต่ฉันต้องการที่จะดูว่ามีวิธีที่จะทำตรงนี้ออกมาจากคำสั่ง unzip