tar command generates error in shell script
6,962
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:
hostname:/remote/file/name
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.
TAR_DUMP="./gypo_$NOW.tar.gz"
echo "Tar name: $TAR_DUMP"
tar -cvzf $TAR_DUMP gypo
Another fix would be to add the --force-local
switch.
--force-local
Forces `tar' to interpret the filename given to --file as a local file, even if it looks like a remote tape drive name.
Related videos on Youtube
Author by
palloquin
Updated on September 18, 2022Comments
-
palloquin over 1 year
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") # TAR cd $HOME/public_html TAR_DUMP="gypo_$NOW.tar.gz" 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?