...

/

Verifying the Backup Command

Verifying the Backup Command

Learn what can go wrong with our example backup command.

Let’s check if the following command works correctly.

tar -cjf ~/photo.tar.bz2 ~/photo &&
  echo "tar - OK" > results.txt ||
  echo "tar - FAILS" > results.txt &&
cp -f ~/photo.tar.bz2 ~/backup &&
  echo "cp - OK" >> results.txt ||
  echo "cp - FAILS" >> results.txt

We can replace each command call with a Latin letter. Then, we get a convenient form of the boolean expression. The expression looks like this:

B && O1 || F1 && C && O2 || F2

The B and C letters represent the tar and cp calls. O1 is the echo call that prints “tar - OK” line in the log file. F1 is the echo call to print the “tar - FAILS” line. Similarly, O2 and F2 are the commands to log the cp result.

If the tar call succeeds, the B operand of our expression equals true. Then, Bash performs the sequence of the following steps:

  1. B
  2. O1
  3. C
  4. O2 or F2

If the tar fails, the “B” operand equals false. Then Bash does the following steps:

  1. B
  2. F1
  3. C
  4. O2 or F2

This means that the shell calls the cp utility even ...