Může existovat jiný způsob, jak dosáhnout toho, co chcete. V podstatě
- Použijte najít příkaz pro výstup cesty k jakýmkoli souborům, které hledáte. Přesměrovat stdout na vámi zvolený název souboru.
-
Pak tar s volbou -T, která mu umožní vzít seznam umístění souborů (ten, který jste právě vytvořili pomocí find!)
find . -name "*.whatever" > yourListOfFiles tar -cvf yourfile.tar -T yourListOfFiles
Použijte toto:
find . -type f -print0 | tar -czvf backup.tar.gz --null -T -
Bude:
- zacházet se soubory s mezerami, novými řádky, úvodními pomlčkami a dalšími vtipnostmi
- zpracovat neomezený počet souborů
- nebude opakovaně přepisovat soubor backup.tar.gz jako při použití
tar -c
sxargs
udělá, když máte velký počet souborů
Viz také:
- Příručka GNU tar
- Jak mohu vytvořit tar z stdin?, vyhledejte null
Název souboru se netiskne správně s podtržítkem _ v Bash
Jak změním kořenový adresář serveru Apache?