Kompres seluruh direktori dengan bzip2 menjadi file tar yang namanya bergantung pada tanggal saat ini

Saya mencoba mengompresi direktori tetapi saya ingin mengubah nama file tar menjadi tanggal saat ini. Masalahnya adalah tar tidak menerima:

#!/bin/bash
tar -cvjSf $(date +%d/%m/%y.%HH:%MM)home_backup.tar.bz2 /home

Saya ingin membuat File terkompresi dengan bzip2 dengan tanggal sebenarnya tetapi namanya tidak diterima. Ini hanya berfungsi jika saya menggunakan nama sederhana seperti:

#!/bin/bash
tar -cvjSf home.tar.bz2 /home

person Igor Aguiar    schedule 25.08.2016    source sumber


Jawaban (1)


Jangan masukkan : atau / pada nama file tar.

Mencoba:

tar -cvjSf "$(date +%d-%m-%y.%HH.%MM)home_backup.tar.bz2" /home

Catatan:

  1. Di Unix, / berarti direktori. Perluasan $(date +%d/%m/%y.%HH:%MM)home_backup.tar.bz2 akan berisi dua / dan tar yang ingin membuat file di subdirektori tertentu. Pada perintah di atas, kami mengganti / dengan - dan masalah dapat dihindari.

  2. tar memperlakukan bagian nama file sebelum : sebagai nama host jarak jauh. Karena Anda tidak mencoba mengirim file ke host jarak jauh, semua : harus dihapus dari perintah date yang digunakan untuk membuat nama file. Pada perintah di atas, kami mengganti : dengan . dan masalah dapat dihindari.

  3. Perintah di atas menampilkan nama file tar di dalam tanda kutip ganda. Dengan perintah khusus yang ditunjukkan di atas, ini tidak diperlukan. Namun, penggunaan tanda kutip ganda mencegah pemisahan kata dan ini dapat menyelamatkan Anda dari kejutan yang tidak menyenangkan di masa depan.

person John1024    schedule 25.08.2016