Você precisará citar o padrão de exclusão, mydir/files/*.zip
, caso contrário o shell irá expandi-lo (globbing), possivelmente / provavelmente correspondendo a vários arquivos, e o significado de sua linha de comando será muito diferente do que você pretendia .
Isso significa alterar sua linha de comando original tar
para
$ tar cfjv backup.tar.bz2 --exclude "mydir/files/*.zip" mydir
Inicialmente, achei que havia algo com as opções cfjv
. Essas são opções de linha de comando antigas e tar
as manipula de maneira muito diferente das opções de linha de comando mais "modernas" (prefixadas por -
). É por isso que você faz não obter um arquivo chamado jv
, mesmo que seja isso que está seguindo a opção f
.
O manual de tar
no Mac OS X menciona isso na seção "COMPATIBILIDADE":
The bundled-arguments format is supported for compatibility with historic implementations. It consists of an initial word (with no leading - character) in which each character indicates an option. Arguments follow as separate words. The order of the arguments must match the order of the corresponding characters in the bundled command word. For example,
tar tbf 32 file.tar
specifies three flags t, b, and f. The b and f flags both require arguments, so there must be two additional items on the command line. The 32 is the argument to the b flag, and file.tar is the argument to the f flag.