gzip

  • Extract .tar.gz file:

    $ tar xvzf ./file.tar.gz
  • Extract only one subdirectory and all its sub-content:

    $ tar -xvzf my-archive.tar.gz --wildcards "./directory/subdirectory*"
  • Create a .tar.gz file:

    $ tar cvzf file.tar.gz ./subfolder
  • Extract all .gz files in the current folder:

    $ gunzip ./*.gz
  • Convert .tar.gz file to .tar.bz2 file:

    $ gzip -dc archive.tar.gz | bzip2 > archive.tar.bz2

bzip2

  • Extract .tar.bz2 file:

    $ tar xvjf ./file.tar.bz2
  • Check a .bz2 file integrity:

    $ bzip2 --test ./file.bz2
  • Extract ./path/in/archive* subfolder content from all .tar.bz2 archives available in the current folder. Place the extracted content of each archive in a folder prefixed with the content- string:

    $ for ARCHIVE in `ls *.tar.bz2`; do DEST_FOLDER=content-`echo $ARCHIVE | cut -d '.' -f 1`; mkdir $DEST_FOLDER; tar -C $DEST_FOLDER -xvjf $ARCHIVE --wildcards "./path/in/archive*"; done

ZIP

  • Create a .zip archive of current directory, including all sub-dirs:

    $ zip -r archive.zip ./*
  • One liner to download an archive and extract its content to a target folder:

    $ wget -O - "https://example.net/archive.zip" | tar -xz --directory /target-folder -f -

7-Zip

  • Create a 7-Zip archive (thanks to p7zip) of a folder, including all sub-directories:

    $ 7za a archive.7z ./folder
  • Do the same as above, but split the archive in 50 Mib volumes:

    $ 7za a -v50m archive.7z ./folder

shar