March 31, 2010

Portabilità: tar

Nella mia esperienza da sviluppatore di progetti OpenSource (e anche come sviluppatore embedded Linux) ho potuto notare come spesso la gente non si curi per niente della portabilità e dia per scontato che l'ambiente di utilizzo sia uguale a quello su cui il tipo/team l'ha sviluppato.

Oggi parlerò di tar e degli accorgimenti per usarlo in maniera portabile.
  1. Non dare per scontato che senza l'opzione -f tar comprima/scompatti (con -c e -x) in stdout. bsdtar, ad esempio, di default usa il device dell'unità a nastro. Esplicitare sempre -f - nel caso serve usare l'stdout.
  2. Non passare stringhe vuote: ad esempio tar -xjf file.tbz2 "${VARIABILE}" è sbagliato, dato che la stringa vuota potrebbe essere riconosciuta come parametro (in questo caso come il file da scompattare) dando origine ad errori.
  3. Attenzione all'ordine dei parametri: Ricordarsi di mettere sempre la lista di files/directory da comprimere/scompattare come ultimo parametro. Ad esempio tar -c -f - file è corretto, mentre tar -c file -f - non lo è