Ailesini içermeyen X dizinini katranmak istiyorum


9
tar cvf /var/lib/backup/sample.tar /home/user/.project

Ancak, ayıkladığımda ebeveynlerini de alıyorum

/backup/
  - /home/
     - /user/
        - .project/

Bu tar komutları işini yapar çünkü ebeveynlerine başka bir şey ( userörneğin altındaki diğer klasörler ) içermez .

Bunu programlı olarak yapmak istiyorum, bu yüzden geçerli çalışma dizinini değiştirmek /home/user/gerçekten bir seçenek değil. Bunu yapmak mümkün mü?

Yanıtlar:


17

Katranmadan önce dizine -Cgeçmek için seçeneği /home/userkullanabilir veya --strip-components 2ayıklamada kullanabilirsiniz .

tar cvfC /var/lib/backup/sample.tar /home/user .project
#                              Note the space ^
tar cvf /var/lib/backup/sample.tar /home/user/.project
tar Cxf /backup /var/lib/backup/sample.tar --strip-components 2

1
+1 cool .. Man sayfasını-C bakarken anahtarı buldum , ancak anlamsız kaldım .. untar sırasında kullanılacak gibi bana daha fazla geliyordu. Yeni bir şey öğrendim.
Levon

@Kevin Teşekkürler. C seçeneği kusursuz çalışıyor. Teşekkür ederim!
Kullanıcı007

2
Böyle çalıştıramadım. Gnu.org/software/tar/manual/tar.html#SEC118 okumaya göre aşağıdaki formda başarılı oldum: tar cvf /var/lib/backup/sample.tar -C / home / user .project
Aivar

2

Dosya cdoluşturmak istediğiniz en üst düzey dizine eğer tar, bu sorun olmamalıdır düşünüyorum. yani,

cdto userve tarup .project.. için tar dosyasının hedefini /var/... daha önce olduğu gibi belirleyebilirsiniz.

Yoksa / 'istemediğiniz bir neden olamaz orada cdhiç user?


Evet. Bu bir çözüm olurdu. Teşekkürler. Ama umarım daha iyi bir yol vardır? Bu programlı müttefik ile uğraşmak istiyorum ve os.chdir(base_dir)her zaman kodumu vermek istemiyorum :) bu yüzden bunun bir yolu varsa güzel olurdu. Teşekkürler
User007 25:12

@ User007 Ah .. tamam, görüyorum. Sorunuzu bu gereksinimi içerecek şekilde güncellemek isteyebilirsiniz. Bu arada güzel kullanıcı kimliği :)
Levon

Teşekkürler. Evet. Sorumu yeni güncelledim. Ah kimliğimi saklamak ...
User007

1
@ User007 007 bölümünü seviyorum .. ve Python'da da çalışıyorsunuz gibi görünüyor (bu benim favorilerimden biri)
Levon

:) Evet. Pekala, arkadaşımız Kevinbana doğru komutla yardım etti. Bu yüzden ona kene vereceğim. Ama seni onayladım. Teşekkürler!
Kullanıcı007
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.