====== GNU tar ======
===== compress =====
tar caf /path/to/archive.tgz /path/to/folder/
==== files in /etc =====
tar cvaT include.txt -f files_$(date +%Y-%m-%d).tlz
===== extract =====
tar xavf files_$(date +%Y-%m-%d).tlz -C /
===== transfer tar over ssh =====
For many small files, transferring them over [[ssh|ssh]] or even with [[rsync|rsync]] can take ages. You can use the following command to pack them into a stream and transfer them to your PC:
ssh user@source.example.com tar cf - /path/to/remote/source | tar xvf - -C /path/to/local/target
This will not create one connection for each file, but instead use a pipe through SSH to maximise I/O.
If you want to transfer files from your local PC to the remote server, you can do this the other way round:
tar cvf - /path/to/local/source | ssh user@target.example.com tar xvf - -C /path/to/remote/target
===== Show files in archive =====
tar taf files.tlz