GNU/Linux >> Znalost Linux >  >> Linux

Příkaz Shell do adresáře tar s výjimkou určitých souborů/složek

Můžete mít několik možností vyloučení pro tar so

$ tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .

atd. bude fungovat. Ujistěte se vložte --exclude před zdrojové a cílové položky.


stará otázka s mnoha odpověďmi, ale zjistil jsem, že žádná pro mě není dost jasná, takže bych rád přidal svůj pokus.

pokud máte následující strukturu

/home/ftp/mysite/

s následujícími soubory/složkami

/home/ftp/mysite/file1
/home/ftp/mysite/file2
/home/ftp/mysite/file3
/home/ftp/mysite/folder1
/home/ftp/mysite/folder2
/home/ftp/mysite/folder3

takže chcete vytvořit soubor tar, který bude obsahovat vše v /home/ftp/mysite (pro přesunutí webu na nový server), ale file3 je jen nevyžádaná pošta a vše v folder3 není také potřeba, takže tyto dva přeskočíme.

používáme formát

tar -czvf <name of tar file> <what to tar> <any excludes>

kde c =create, z =zip a v =verbose (můžete vidět soubory tak, jak jsou zadány, což je užitečné, abyste se ujistili, že se nepřidávají žádné soubory, které vyloučíte). a f=soubor.

takže můj příkaz by vypadal takto

cd /home/ftp/
tar -czvf mysite.tar.gz mysite --exclude='file3' --exclude='folder3'

všimněte si, že vyloučené soubory/složky jsou relativně ke kořenovému adresáři vašeho taru (zkusil jsem zde úplnou cestu vzhledem k /, ale nemohu to udělat).

doufám, že to někomu pomůže (a mně, až to budu příště googlit)


Možné možnosti vyloučení souborů/adresářů ze zálohy pomocí tar:

Vyloučit soubory používající více vzorů

tar -czf backup.tar.gz --exclude=PATTERN1 --exclude=PATTERN2 ... /path/to/backup

Vyloučit soubory pomocí souboru vyloučení vyplněného seznamem vzorů

tar -czf backup.tar.gz -X /path/to/exclude.txt /path/to/backup

Vylučte soubory pomocí značek umístěním souboru značek do libovolného adresáře, který by měl být přeskočen

tar -czf backup.tar.gz --exclude-tag-all=exclude.tag /path/to/backup

Adresáře můžete vyloučit pomocí --exclude pro dehet.

Pokud chcete archivovat vše kromě /usr můžete použít:

tar -zcvf /all.tgz / --exclude=/usr

Ve vašem případě možná něco jako

tar -zcvf archive.tgz arc_dir --exclude=dir/ignore_this_dir

Linux
  1. Jak vyloučit soubory určité velikosti z kopírování v Linuxu

  2. Jak tarovat (komprimovat) soubory, s výjimkou určitých souborů nebo adresářů

  3. Jak vyloučit adresář v find . příkaz

  1. Jak vytvořit soubory určité velikosti v Linuxu

  2. Vyloučení adresáře při vytváření souboru .tar.gz

  3. tar/gzip s výjimkou určitých souborů

  1. Shell - Jak najít adresář nějakého příkazu?

  2. linuxový příkaz k vyprázdnění všech souborů v adresáři

  3. Jak mohu vyloučit adresář z příkazu ls