สร้างไฟล์เก็บถาวร Zip, กรณีพิเศษ


1

ฉันจะสร้าง zip ใน linux distro ได้อย่างไรและ
- เก็บเฉพาะเส้นทางสัมพัทธ์กับโฟลเดอร์
- วางไฟล์บางไฟล์ไว้ในโฟลเดอร์แยกต่างหากภายใน zip

ฉันต้องทำสิ่งนี้ในสคริปต์ทุบตีดังนั้นถ้าฉันเพียงใช้เส้นทางที่แน่นอนเส้นทางทั้งหมดจะอยู่ภายในซิป

ตัวอย่าง

/home/user/folder/1.txt
/home/user/folder/2.txt

เอาท์พุทต้องการมัน:

test.zip
folder/1.txt
folder/secondfolder/2.txt

1
เอาต์พุตเกี่ยวข้องกับตัวอย่างอย่างไร
Ignacio Vazquez-Abrams

อาจจะเหมาะกับ ServerFault นี้หรือไม่ ดูเหมือนว่าเป็นคำถามดูแลระบบมากกว่าคำถามการเขียนโปรแกรมให้ฉัน
ssokolow

คำตอบ:



0

ไม่find . ! -name "*.zip" -type f -print | zip test -@ทำในสิ่งที่คุณต้องการ?


zipมีความสามารถในการเรียกซ้ำเส้นทางด้วยตัวเอง
Ignacio Vazquez-Abrams

ฉันอัพเดทคำถาม นี่ไม่ใช่สิ่งที่ฉันต้องการ
danidacar

@ ผู้ใช้ฉันอัปเดตคำถาม - การเพิ่ม "ต้องการมัน" เป็นการอัปเดตแทบจะไม่! (โปรดสร้างหัวข้อที่ดีกว่าด้วย)
Arjan

@Ignacio และ Charles ดังนั้นอาจzip -r -x *.zipจะบรรลุเหมือนกันหรือไม่
Arjan

0

ทำไมคุณไม่สร้างโครงสร้างไดเรกทอรีที่คุณต้องการแล้วทำการ zip แล้วลบมันออก

cd ~/
mkdir backup1
cp /var/www/test/* backup1/
zip -r output.zip ~/backup1
rm -r backup1

เพราะฉันคุ้นเคยกับความยืดหยุ่นของบรรทัดคำสั่งและฉันคิดว่าฉันขาดอะไรไป เคล็ดลับที่ดีแม้ว่า
danidacar

ดูเหมือนจะไม่อนุญาตให้คุณสร้างไดเรกทอรี หากคุณต้องการทำในบรรทัดเดียว; เพียงแค่ cp / var / www / test / * backup1 / && zip -rm output.zip backup1 / (m สำหรับย้ายไฟล์) ส่วนคือไม่ต้องมีฟีเจอร์ขยายตัว; ไม่มีเหตุผลจริงที่จะให้ zip สร้างไฟล์ / dirs ที่ไม่มีอยู่เมื่อคุณสามารถทำได้อย่างสมบูรณ์แบบด้วยคำสั่งอื่น ๆ

0

$ ln -s / var / www / test backup1
$ zip -r backup1 -j backup1 / *

ได้รับการยอมรับ?


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