I am trying to create a tar ball in a shell script (I have enabled set -x), but I get the following error:

+ cd /home5/mysite/public_html
+ TAR_DUMP=gypo_2012-02-18-03:51:15.tar.gz
+ echo 'Tar name: gypo_2012-02-18-03:51:15.tar.gz'
Tar name: gypo_2012-02-18-03:51:15.tar.gz
+ tar -cvzf gypo_2012-02-18-03:51:15.tar.gz gypo
tar: gypo_2012-02-18-03\:44\:04.tar.gz: Cannot open: Input/output error
tar: Error is not recoverable: exiting now

The script is:

NOW=$(date +"%Y-%m-%d-%T")


cd $HOME/public_html
echo "Tar name: $TAR_DUMP"
tar -cvzf $TAR_DUMP gypo
# mv -t $DEST $TAR_DUMP

Why is tar generating this error and how can I solve it?


The : in the filename are confusing tar. At least for the coreutils version of tar, the --file switch can take an argument of the form:


so I'm guessing tar is trying to interpret that filename in a manner that is not what you meant.

Prefixing the file name with ./ (or specifying a full path) should solve your problem.

echo "Tar name: $TAR_DUMP"
tar -cvzf $TAR_DUMP gypo

Another fix would be to add the --force-local switch.


Forces `tar' to interpret the filename given to --file as a local file, even if it looks like a remote tape drive name.

| improve this answer | |
  • Adding ./ solved the issue, many many thanks !!! – Jérôme Verstrynge Feb 18 '12 at 11:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.