bağıl yolları olan katran


24

Göreceli yolları kullanarak tar ile bir arşiv oluşturmaya çalışıyorum. Aşağıdaki komutu kullanıyorum:

tar czf ~/files/wp/my-page-order.tar.gz -C ~/webapps/zers/wp-content/plugins/ ~/webapps/zers/wp-content/plugins/my-page-order

Ancak arşivlenmiş dosyalar hala mutlak yollara sahiptir. Tar'yı göreceli yollarla nasıl kullanabilirim?


Yanıtlar:


24

'~' kabuk tarafından genişletilir. '~' İşaretini -C ile kullanmayın:

tar czf ~/files/wp/my-page-order.tar.gz \
      -C ~ \
       webapps/zers/wp-content/plugins/my-page-order

(tar, webapps / zers / wp-content / plugins / sayfa sıralamam yolu içerecektir) veya

tar czf ~/files/wp/my-page-order.tar.gz \
      -C ~/webapps/zers/wp-content/plugins \
       my-page-order

(tar benim sayfa sırası yolumu içerecek)

Ya da ilk önce sadece cd ...

cd ~/webapps/zers/wp-content/plugins
tar czf ~/files/wp/my-page-order.tar.gz my-page-order

2
Açıklama yanlış. Burada önemli değil ~ kabuk tarafından genişletilmesi. Önemli olan yani -Caçıklandığı gibi mevcut çalışma dizini değiştirir cevaplamaya Lekensteyn tarafından.
Piotr Dobrogost

1
Hayır - orijinal soruya bakın - son tartışma mutlak bir yoldur.
symcbean

Ne olmuş yani? Her iki ~ örneği de genişletilir ve tüm çağrı yalnızca beklendiği gibi çalışmaz, çünkü kullanma durumunda son argümana -Cgöreceli yol verilmiş, bunun yerine mutlak yol verilmiş olmalıdır. Burada ~ kullanmak hiç önemli değil.
Piotr Dobrogost

11

-C new_cwdgeçerli çalışma dizinini değiştirir new_cwd. Aşağıdaki argümanlar daha sonra göre değerlendirilir new_cwd.

tar czf ~ / dosyalar / wp / my-page-order.tar.gz -C ~ / webapps / zers / wp-content / eklentiler / my-page-order


4

Eğer sigara GNU çözümü tarhiçbir vardır -zsadece söz etmek, seçenek:

pushd ~/files/wp; tar cvf - my-page-order | gzip > my-page-order.tar.gz && rm -rf my-page-order; popd

EDIT (olan &&ve olmayan rm):

pushd ~/files/wp && tar cvf - my-page-order | gzip > my-page-order.tar.gz && popd

(1) Soru, hakkında hiçbir şey söylemez rm; Neden cevabına dahil ediyorsun? (2) Cevabınız yanlış dizini arşivliyor. (3) Neden değiştin tar -ziçin tar | gzip? (4) Eğer kullanım için gidiyoruz sürece gibi &&, muhtemelen kullanmalısınız &&sonra pushdda.
G-Man

(1) Gerçekten haklısın (2)? Hangisi iyi olan? (3) mesele şudur: tar'ın GNU olmayan versiyonu (örneğin, Unix'te), hayır -z (4) muhtemelen &&bir betiğinde kullanacağım , ancak bunun bir "tek astar" için gerekli olmadığını düşünüyorum
Mattia72

(2) OP arşiv istediği ~/webapps/zers/wp-content/plugins/my-page-orderçıktı ile ~/files/wp/my-page-order.tar.gz; Komut arşivleriniz ~/files/wp/my-page-order. (3) Neden kullandığınızı açıklamak için cevabınızı düzenlediğiniz için teşekkür ederiz gzip.
G-Man,
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.