Jika Anda ingin konten direktori tunggal, metode yang mudah adalah dengan mengubahnya terlebih dahulu:
cd ~/my/folder
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z .
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 yang lstidak menunjukkannya secara default).
Tidak ada cara portabel yang benar-benar nyaman untuk membuat daftar semua file dalam direktori. Kamu bisa menggunakan
~/my/folder/..?* ~/my/folder/.[!.]* ~/my/folder/*
tetapi jika tidak ada file yang cocok dengan salah satu polanya maka polanya akan tetap tidak berkembang. Dalam bash, Anda dapat mengatur dotglobopsi untuk menghindari memperlakukan pemimpin .secara khusus ( .dan ..masih dikecualikan dari pertandingan):
shopt -s dotglob
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/*
Di ksh, atau dalam bash jika Anda mengatur extglobopsi (atau di zsh jika Anda mengatur ksh_globopsi), Anda dapat menulis pola yang cocok dengan semua file kecuali .dan ..:
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/@(..?*|.[!.]*|*)
Di zsh, ada cara sederhana untuk mengatakan yang .tidak harus diperlakukan secara khusus dalam sebuah pola:
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/*(D)
*, coba hapus, 7z harus mengarsipkan seluruh direktori.