Karena spesifik dari kebutuhan pengarsipan saya, saya tidak nyaman dengan arsip tar.gz solid dan menggunakan 7z sebagai gantinya.
Saya menggunakan perintah berikut untuk melakukan ini:
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/*
Untuk membuat arsip semua yang ada di dalamnya ~/my/folder/
sebagai ~/my/folder.7z
file.
Tapi ~/my/folder/.hiddenFolder
tidak masuk ke arsip itu. Bagaimana cara memperbaikinya? Bukankah *
seharusnya mengembalikan semua file dan folder?
*
, coba hapus, 7z harus mengarsipkan seluruh direktori.bash
- mungkin saya menggunakan "perluasan jalur bash" dengan cara yang salah?Jawaban:
Jika Anda ingin konten direktori tunggal, metode yang mudah adalah dengan mengubahnya terlebih dahulu:
Apa yang Anda lihat adalah yang
*
diperluas ke daftar nama file yang tidak dimulai dengan a.
. Itu perilaku yang didokumentasikan, dan itu adalah alasan utama mengapa file yang namanya dimulai dengan.
kata disembunyikan (yang lain adalah yangls
tidak menunjukkannya secara default).Tidak ada cara portabel yang benar-benar nyaman untuk membuat daftar semua file dalam direktori. Kamu bisa menggunakan
tetapi jika tidak ada file yang cocok dengan salah satu polanya maka polanya akan tetap tidak berkembang. Dalam bash, Anda dapat mengatur
dotglob
opsi untuk menghindari memperlakukan pemimpin.
secara khusus (.
dan..
masih dikecualikan dari pertandingan):Di ksh, atau dalam bash jika Anda mengatur
extglob
opsi (atau di zsh jika Anda mengaturksh_glob
opsi), Anda dapat menulis pola yang cocok dengan semua file kecuali.
dan..
:Di zsh, ada cara sederhana untuk mengatakan yang
.
tidak harus diperlakukan secara khusus dalam sebuah pola:sumber
TL; DR
Lebih banyak contoh
Contoh struktur direktori
Coba ikuti perintah
Root folder dengan semua isinya.
memberi
Tidak ada folder root dan tidak ada file tersembunyi
memberi
Tidak ada folder root tetapi file tersembunyi disertakan (ini yang biasanya kami inginkan)
memberi
sumber
shopt
.Tidak,
*
tidak seharusnya mengembalikan semua file. Hanya mengembalikan yang terlihat.Solusi yang lebih mudah adalah:
sumber