tar-ing / ฉันควรใช้ -C / หรือเพียงแค่ /


2
tar cvf backup.tar  -C /  /   # or
tar cvf backup.tar    /

สร้างที่เก็บถาวรเช่น

etc/

และให้คำเตือน

tar: Removing leading `/' from member names
tar: Removing leading `/' from hard link targets

ในทางกลับกัน

tar cvf backup.tar  -C /  . 

สร้างที่เก็บถาวรเช่น

./etc/

และไม่เตือน ฉันได้คนสุดท้ายจากการสอน Debian

อันไหนดีที่สุดสำหรับการสำรองข้อมูลระบบพวกมันทำงานเหมือนกันทุกประการหรือไม่?


ไม่มีความแตกต่างระหว่าง น้ำมันดิน -tvh ผลิต

./etc/

จากที่เก็บถาวร

และน้ำมันดิน -tvh ผลิต

etc /

จากที่เก็บถาวร

?


ฉันไม่เห็นว่าการใช้ execve ทำให้คุณไม่สามารถใช้คำสั่งเชลล์ได้ ไม่สามารถเรียกการเรียก / bin / sh ด้วยตัวเลือก -c ตามด้วยบรรทัดคำสั่งที่มีไพพ์, globs หรืออะไรก็ตามที่อาจจำเป็นในการสร้างไฟล์ tar ตามที่คุณต้องการ?
Marnix A. van Ammers

ถ้าฉันใช้ยูนิกซ์เท่านั้นมันคงเป็นที่ยอมรับได้ แต่ยูทิลิตี้จะต้องเป็นแบบพกพาและ sh ไม่มีอยู่บน Windows
Daniel

คำตอบ:


0

ทั้งตัวอย่างที่คุณให้นั้นมีประสิทธิภาพเทียบเท่ากัน - คุณจบลงด้วยเส้นทางสัมพัทธ์ในไฟล์เก็บถาวร

หากคุณต้องการรวมพา ธ สัมบูรณ์ในไฟล์เก็บถาวรให้ใช้ -P แต่ระวังว่าจะไม่สะดวกในการกู้คืนไปยังตำแหน่งอื่นนอกเหนือจากรูท


ไม่มีความแตกต่างระหว่างการผลิต tar -tvh ./etc/ จากการเก็บถาวรและการผลิต tar -tvh etc/ จากการเก็บถาวร?
sabgenton

พวกมันเป็นการสะกดที่แตกต่างกันในเส้นทางสัมพัทธ์เดียวกัน
Richard Kettlewell

0

สิ่งที่คุณต้องการใช้ขึ้นอยู่กับสิ่งที่คุณทำ

หากคุณเพียงแค่พยายามสำรองไฟล์ของคุณ tar คำสั่งจะทำงานให้คุณ (เพิ่มเติมในด้านล่าง) หากคุณกำลังพยายามสร้างภาพของฮาร์ดไดรฟ์ของคุณให้ใช้ dd คำสั่ง โปรดทราบว่าคุณไม่สามารถวาง tar สำรองข้อมูลในไดรฟ์ใหม่และบูตด้วย

ปัญหาที่คุณจะพบกับ tar คำสั่งคือไฟล์ของคุณจะถูกวางไว้ภายใต้ไดเรกทอรี / ซึ่งเป็นสิ่งที่คุณกำลังสำรอง ดังนั้นคุณจะต้องยกเว้นไฟล์สำรองของคุณ

cd /
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz /


ฉันรู้ว่ามันจะไม่ได้รับ MBR แต่ถ้าฉันมี / boot พาร์ติชันและฉันเพิ่ง tarballed พาร์ทิชันจุด bootloader เพื่อที่จะไม่ทำงานหรือไม่ ฉันทำสิ่งเดียวกันกับ rsync ทำงานได้ดี
sabgenton

สิ่งนี้จะใช้ได้ผลหากคุณวางแผนที่จะกู้คืนข้อมูลสำรองของคุณไปยังไดรฟ์เดียวกัน ฉันมักจะวางแผนสำหรับสิ่งที่เลวร้ายกว่า (เช่นไดรฟ์ที่กำลังจะตาย) คำสั่ง tar สร้างสิ่งที่คุณคาดหวังไว้หรือไม่?
Chris Ting

0

ฉันได้พบ sed วิธีแก้ปัญหาดีกว่าใช้ tar สองครั้ง

tar cvfz backup.tar.gz -C /path/to/dir/ --transform 's/^\.//' .

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