Apakah ada cara untuk mengenkripsi direktori menggunakan gpg
? Tampaknya hanya menerima file sebagai argumen.
Apakah ada cara untuk mengenkripsi direktori menggunakan gpg
? Tampaknya hanya menerima file sebagai argumen.
Jawaban:
Mengapa bukan tar
file yang akan dienkripsi lalu dienkripsi tarball?
Saya baru saja melihat opsi --multifile
di halaman manual:
Ini memodifikasi perintah lain tertentu untuk menerima beberapa file untuk diproses pada baris perintah atau membaca dari STDIN dengan setiap nama file pada baris yang terpisah. Ini memungkinkan banyak file diproses sekaligus. --multiā file saat ini dapat digunakan bersama dengan --verify, --encrypt, dan --decrypt. Perhatikan bahwa --multifile --verify tidak dapat digunakan dengan tanda tangan terpisah.
Yang Anda cari secara spesifik adalah --encrypt-files
dan, sekali lagi, halaman manualnya:
Identik dengan --multifile --encrypt.
Hai saya membaca komentar pada jawaban yang telah ditandai sebagai dikecualikan; Sepertinya Anda harus dibuat sadar akan keajaiban |
(pipa anonim) periksa jawaban saya baru saja diposting di superuser dan Anda akan menemukan bahwa tar
& gpg
dapat digabungkan bersama sehingga output Anda dikompresi dan dienkripsi sebelum menjadi output. Catatan itu masih akan menggunakan sumber daya sistem yang signifikan jadi periksa man
halaman untuk nice
perintah untuk membatasi kemampuan perintah untuk memakan hanya persentase tertentu dari sumber daya. Juga sementara saya berminat untuk menyarankan topik yang dapat membuat hidup Anda lebih mudah di baris perintah secara umum; lihat deskriptor file dan beri nama pipa untuk melewatkan data.
Jika Anda ingin melihat jenis sihir apa yang dapat dilakukan ketika subjek di atas dipahami, maka periksa log build Travis-CI dan skrip terkait untuk solusi terkait dengan mengotomatisasi GnuPG pada baris perintah.
---- Pembaruan
Seperti yang diminta, contoh untuk berurusan dengan direktori dapat ditemukan dalam skrip yang disebutkan sebelumnya pada baris 680 dan contoh yang lebih umum adalah ...
#!/usr/bin/env bash
dir_path="${1:?${0##*/} needs a directory path as the first argument}"
default_gpg_email="your-email@host.domain"
gpg_email="${2:-$default_gpg_email}"
_dir_name="${dir_path##*/}"
_dir_name="${_dir_name%/*}"
Var_star_date="$(date -u +%s)"
if [ -d "${dir_path}" ]; then
tar -cz - "${dir_path}" | gpg --always-trust --armor --batch --no-tty --encrypt --recipient ${gpg_email} > /tmp/${Var_star_date}_${_dir_name}.tgz.gpg"
else
echo "${0##*/} operates on directories"
exit 1
fi
... yang mungkin dijalankan dengan script-name.sh /path/to/dir
atau script-name.sh /path/to/dir new-email@host.domain
dan harus menampilkan ke /tmp
direktori file<current-date>_<top-dir-name>.tgz.gpg