Archiving and Compression

Archiving is the process of combining multiple files and directories into one file. compression is the process of reducing the size of a file (or an archived directory).

Here’s an article touching on all of this in depth. https://www.linuxjournal.com/article/9370

tar and gzip options and examples

tar [options] [archive-file] [file or directory to be archived]

  • -c : Creates Archive

  • -x : Extract the archive

  • -f : creates archive with given filename

  • -t : displays or lists files in archived file

  • -u : archives and adds to an existing archive file

  • -v : Displays Verbose Information

  • -A : Concatenates the archive files

  • -z : zip, tells tar command that create tar file using gzip

  • -j : filter archive tar file using tbzip

  • -W : Verify a archive file

  • -r : update or add file or directory in already existed .tar file

# piping data (text or chars) through gzip, and reverse
echo "hello world" | gzip -c > file.gz ; cat file.gz | gzip -d -c

zcat file.gz

# is a shorthand for this

cat file.gz | gzip -d -c

gunzip file.gz # this command does stuff in-place



# creat a tar.gz file
tar -f /bits/data/logs.tar.gz -czv /bits/data/logs

# extract a tar.gz gile
tar -xzf logs.tar.gz

# download file with a specified name
wget -O drupal.tar.gz https://www.drupal.org/download-latest/tar.gz


tar -xzvf drupal.tar.gz


# list contents of an archive
tar -tvf drupal.tar.gz

drupname=$(tar -tf drupal.tar.gz | head -n 1 | sed 's/.$//')

Drupal Update process

# download file with a specified name
wget -O drupal.tar.gz https://www.drupal.org/download-latest/tar.gz


tar -xzvf drupal.tar.gz


# list contents of an archive, not
tar -tvf drupal.tar.gz


drupbase=/home/mk/drupal

cd $drupbase

time_stamp=$(date +%s)

mv drupal drupal_back_$time_stamp

filename=drupal_$time_stamp.tar.gz
wget -O $filename https://www.drupal.org/download-latest/tar.gz

drupname=$(tar -tf $filename | head -n 1 | sed 's/.$//')

tar -xzf $filename

mv $drupname drupal

Other Tricks

When creating backup you can include datetime (date time) stamp (timestamp) in the filename

pg_dump -h nuc -U redmine redmine > /bits/data/backup/redmine$(date +%s).sql