Pertanyaan Bagaimana saya bisa memperbarui file tar.gz?


Saya telah membuat file tar.gz (menggunakan GUI, bukan baris perintah). Bagaimana saya bisa memperbaruinya dengan perintah bahwa file-file baru ditambahkan dan file yang dimodifikasi juga diperbarui?


21
2018-03-13 12:54


asal


Lihat juga unix.stackexchange.com/questions/13093/… - anatoly techtonik


Jawaban:


Anda biasanya menggunakan flag -u untuk ini. Dari halaman manual tar:

 -u, --update
       only append files newer than copy in archive

jadi urutan ini akan melakukan apa yang Anda butuhkan:

# First create the tar file. It has to be UNCOMPRESSED for -u to work
tar -cvf my.tar some-directory/
# ... update some files in some-directory
# ... add files in some-directory
# Now update only the changed and added files
tar -uvf my.tar some-directory/
# Compress if desired
gzip my.tar

Untuk tampilan yang sedikit lebih detail, lihat di sini: http://www.gnu.org/software/tar/manual/html_node/how-to-update.html


21
2018-03-13 13:26





Solusi / solusi

Anda tidak dapat memperbarui arsip TAR terkompresi (.tar.gz) dalam satu langkah. Tetapi, jika Anda memiliki cukup ruang kosong, Anda dapat melakukan ini:

  1. Ekstrak .ter file dari .tar.gz mengajukan:

    gunzip filename.tar.gz

  2. Perbarui tanpa kompresi .ter file dengan tar -u perintah:

    tar -uf filename.tar new_file

  3. Kompres pembaruan .ter mengajukan:

    gzip filename.tar

Percepatan

Jika Anda memiliki CPU multi-core, saya sarankan untuk menggunakannya pigz dari pada gzip untuk mengekstrak dan membuat .gz file. (pigz adalah implementasi multi-threaded dari gzip)

Cukup ganti gzip/gunzip perintah untuk pigz/unpigz.

Panduan terkait


8
2018-01-28 19:02





Jika Anda ingin memperbarui file tertentu *.tar.gz file, cukup lakukan hal berikut:

Memasukkan vi dari mana tar file tersedia

/home>vi

Misalnya, jika Anda ingin memodifikasi simple.tar.gz yang ada di bawah /home/test/ direktori:

/home/test>vi

Dan di editor kosong masuk :n simple.tar.gz dan tekan Memasukkan Anda akan mendapatkan daftar folder dan file memindahkan kursor di mana Anda ingin memodifikasi Dan klik Memasukkan. Ini akan menunjukkan vi editor file tertentu. Kemudian i opsi untuk mengubah file. Setelah perubahan berhasil. tekan ESC kunci dan pilih :wq untuk menulis dan keluar dari file. Kemudian gunakan :q untuk keluar dari daftar file.


5
2018-04-10 11:28





Jika Anda akan melakukan ini berulang kali, pengoptimalan dapat berupa:

if [[ -f my.tar.gz ]]; then
    if [[ ! -f my.tar ]]; then
        echo 'No tar, unzipping tar.gz'
        gunzip my.tar.gz
    fi
    tar -uvf my.tar file1 file2 file_new
    gzip -fk my.tar  # This keeps a copy of the tar.
    # -f --force overwrite existing .tar.gz
    # -k --keep Keep the input file (.tar file)
else
    tar -cvzf my.tar.gz file1 file2
fi

0
2018-04-25 11:43