tar -xvfz foo.tar.gz
mengembalikan kesalahan tar: z: Cannot open: No such file or directory
Ini benar-benar dapat dimengerti - f
switch mengharapkan nama file, dan karena itu perlu yang terakhir.
Namun, menghilangkan tanda hubung tar xvfz foot.tar.gz
berfungsi dan tidak mengompresi dan menghapus file.
Saya sudah menguji ini pada OS X 10.8 dan Ubuntu 12.04.
Ada ide mengapa?
[diedit untuk menambahkan]
Saya selalu menggunakan tar -zxvf foo.tar.gz
. Namun, pertanyaan ini muncul karena xkcd ini , dan keterkejutan saya ketika seseorang bersikeras itu tar xvfz
akan berhasil.
Jawaban:
tar memiliki 3 jenis sintaks (menurut ini ):
Untuk sintaksis opsi lama, semua huruf harus mengikuti "tar" dan semua harus jatuh ke dalam satu rumpun tanpa spasi. Urutan surat-surat itu tidak terlalu penting, asalkan argumen untuk surat-surat itu mengikuti urutan yang sama setelah rumpun opsi.
Cara penulisan opsi tar yang lama ini dapat mengejutkan pengguna yang berpengalaman sekalipun. Sebagai contoh, dua perintah:
sangat berbeda. Contoh pertama menggunakan 'archive.tar.gz' sebagai nilai untuk opsi 'f' dan mengenali opsi 'z'. Contoh kedua, bagaimanapun, menggunakan 'z' sebagai nilai untuk opsi 'f' - mungkin bukan yang dimaksudkan.
Opsi lama disimpan untuk kompatibilitas dengan tar versi lama.
Perintah dengan '-' sama dengan
Itulah alasan contoh Anda bekerja tanpa tanda "-" dan bukan dengan "-"
sumber