Dizin yapısını korumadan bir dizini nasıl tararım?


86

Bir yedekleme komut dosyası üzerinde çalışıyorum ve bir dosya dizinini taramak istiyorum:

tar czf ~/backup.tgz /home/username/drupal/sites/default/files

Bu, onu yukarı kaldırır, ancak elde edilen dosyayı açtığımda, tam dosya yapısını içerir: dosyalar içeride home/username/drupal/sites/default/files.

Ana dizinleri dışlamanın bir yolu var mı, böylece ortaya çıkan tar son dizini ( files) biliyor mu?

Yanıtlar:


39
cd /home/username/drupal/sites/default/files
tar czf ~/backup.tgz *

19
Ayrıca tar'ın -C seçeneğini de kullanabilirsiniz.
GuruM

9
cd önerilmez ve hataya meyillidir, örneğin büyük betikler veya makefiles. Aşağıdaki cevap daha genel olarak kullanılabilir ve doğrudur.
Gregor

Ubuntu 16.04'te denedi -Cve --directorybenim için çalışmadı. Bu, çalışan tek seçenektir.
haxpor

Bu, işe yarayan tek seçenektir -C bir. kök klasör, ki istediğimiz bu değil.
Nicolas Dorier

169

--Directory seçeneğini kullanın:

 tar czf ~/backup.tgz --directory=/home/username/drupal/sites/default files 

1
Ya buraya 2 dizin koymak istersem?
Shanpei Zhou

@ user3352668 sadece iki dizin ekleyin. Örneğin, varsayılan "dosyalar" ve "daha fazla dosya" içeriyorsa, nbt'nin dizesine "daha fazla dosya" eklemeniz yeterlidir. Btw: En iyi çözüm nbt'lerdir, kabul edilen yanıt olmalıdır
Anonim

4
-C DIR , --directory = DIR ile aynıdır , dizini DIR olarak değiştirir
Markus

1
Buradaki sıranın önemli olduğunu söylemeyi düşündüm. --directory="/home/username/drupal/sites/default files"Hedefin önüne sahip olamazsınız ~/backup.tgz.
Chris Stryczynski

6
@ChrisStryczynski --directorySeçenek tarafından verilen yolun olmadığını unutmayın "/home/username/drupal/sites/default files". Ardından, /home/username/drupal/sites/defaulttaranacak dizinin adını belirten bir konumsal bağımsız değişken gelir files.
Bölüm

51

Merhaba, belirtilen dizine girdiğinizde daha iyi bir çözüm buluyorum, bu imkansız (Makefiles, vb.)

tar -cjvf files.tar.bz2 -C directory/contents/to/be/compressed .

Sonundaki noktayı (.) Unutmayınız !!


4
Sondaki nokta ne işe yarar?
Bruce Sun

3
@BruceSun -C çalışma dizininizi değiştirir. Nokta, tar'a hangi dizini arşivlemek istediğinizi söyler (yani geçerli çalışma dizini).
user12345

2

3
Herkes -C seçeneğinden veya --dizinden bahseder, ancak biraz 'olmadan.' @MaikolD'un da belirttiği gibi, işe yaramıyor - en azından benim çevremde.
aks

6
Bu hala sizi .tar kökünde bir klasörle bırakıyor
electrovir

2

Kaynak dosyaların dizin yapısı olmadan tüm txt (* .txt) dosyalarını gunzip /home/myuser/workspace/zip_from/ etmek /home/myuser/workspace/zip_to/için aşağıdaki komutu kullanın:

tar -P -cvzf /home/myuser/workspace/zip_to/mydoc.tar.gz  --directory="/home/myuser/workspace/zip_from/" *.txt

2

Tar arşivi oluştur

tar czf  $sourcedir/$backup_dir.tar --directory=$sourcedir WEB-INF en

Yerel bir makinedeki tar dosyalarını kaldırma

tar -xvf $deploydir/med365/$backup_dir.tar -C $deploydir/med365/

Bir sunucuya yükleyin

scp -r -i $privatekey $sourcedir/$backup_dir.tar $server:$deploydir/med365/
echo "File uploaded.. deployment folders"

Sunucudaki taramayı kaldır

ssh -i $privatekey $server tar -xvf $deploydir/med365/$backup_dir.tar -C $deploydir/med365/

0

Bu benim için çalıştı:

gzip -dc "<your_file>.tgz" | tar x -C <location>

0

Benim için -C veya --directory çalışmadı, bunu kullanıyorum

cd source/directory/or/file
tar -cvzf destination/packaged-app.tgz *.jar
# this will put your current directory to what it previously was
cd -

0

Dizin yapısı olmadan tar dosyası oluşturmak için lütfen aşağıdaki komutu kullanın

tar -C <directoryPath> -cvzf <Path of the tar.gz file> filename1 filename2... filename N

Örneğin:

tar -C /home/project/files -cvzf /home/project/files/test.tar.gz text1.txt text2.txt

-3
tar -Cczf ~/backup.tgz /home/username/drupal/sites/default/files

-C cd sizin için yapar


Bu işe yaramayacak. MaikoID ve Neil Butterworth'un çözümlerine bakın.
Vincent

3
-C çalışır, ancak şu şekilde kullanılmalıdır -C <dir> file1 file2 ...
vyom
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.