7zip Linux-Befehlszeile - Verzeichnisse ausschließen

7zip Linux-Befehlszeile - Verzeichnisse ausschließen

Ich möchte mit 7zip ein .7z-Archiv meiner Website erstellen. Es gibt einige Verzeichnisse, die große Dateien (mehrere Gigabyte) enthalten, die sich nicht zu sichern lohnen, da ich bereits Backups davon habe. Ich könnte angeben, dass nur bestimmte Dateien oder Verzeichnisse gesichert werden sollen, aber ich habe vor, ein Skript zu erstellen, das dies für mich erledigt, und es wäre etwas nervig, das Skript ständig zu aktualisieren, um neue Dateien, Dateitypen und Verzeichnisse einzuschließen. Ich kann beim besten Willen nichts in der Dokumentation darüber finden, Verzeichnisse auszuschließen; nur Dateien. Was ist der einfachste Weg, dies zu tun?

Der Befehl, den ich früher verwendet habe (bevor ich große Dateien vermeiden musste), war einfach

7z a backup.7z *

erfolgt im Arbeitsverzeichnis.

Antwort1

directoryist ein Dateityp. man 7zEs ist nicht leicht zu lesen, erwähnt aber -x:

-x[r[-|0]]]{@listfile|!wildcard}
         

    Exclude filenames

Nehmen wir an, wir haben folgenden Verzeichnisbaum:

$ tree
.
├── dir
│   └── file3
├── dir1
│   └── file4
├── file1
└── file2

2 directories, 4 files

und das wollen wir ignorieren dirund dir1:

$ 7z a -x'!dir' -x'!dir1' b.7z  *

Nachdem Sie das getan haben:

$ 7z l b.7z
(...)
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2018-04-03 22:25:24 ....A            0            0  file1
2018-04-03 22:25:24 ....A            0            0  file2
------------------- ----- ------------ ------------  ------------------------
2018-04-03 22:25:24                  0            0  2 files

Antwort2

Für mich ist die Syntax etwas anders.

NOW=`date +%Y-%m-%d-%H-%M-%S`
XX=`cat ~aaaaaazzzzzz/.gnupg2/passphrase-symmetric`
7z a                                           \
  -t7z -m0=lzma2 -mx=9 -mfb=64                 \
  -md=32m -ms=on -mhe=on -p${XX}               \
    '-xr!~/Documents/temp/'                    \
    '-xr!~/Documents/Sites/'                   \
    '-xr!**/*.zip'   '-xr!**/*.bz2'         '-xr!**/*.gz'   '-xr!**/*.7z'          \
    '-xr!**/*.pyc'   '-xr!**/__pycache__/**'                 \
    '-xr!**/*.gpkg'  '-xr!**/*.gramp' '-xr!**/*.ged'         \
    '-xr!**/*.log'   '-xr!*/venv/*' '-xr!*.sqlit*'  '-xr!*.bak'  '-xr!*.html~' '-xr!*.html~*'  \
    '-xr!*.vm'  '-xr!*.vmdk'  '-xr!*.vmem'  '-xr!*.vmsd'  '-xr!*.vmss'  '-xr!*.vmx'  '-xr!*.vmxf' \
    '-xr!*.mp4' '-xr!*.msf'                           \
    '-xr!*.htm' '-xr!*.html'                          \
   ${BACKUP_DIR}/data-encrypted/BackUp-${NOW}.7z      \
                    ~/Documents            \
                    ~/.ssh                 \
                    ~/.gnupg2              \
                    ~/.gnupg  

Ich verwende Linux / Ubuntu

verwandte Informationen