Search code examples
unixbackuptar

Adding --ignore-failed-read to tar causes "unknown function modifier" error


I'm using the tar command in UNIX to perform backups of particular directories. However, some directories contain files/sub-directories which the current user doesn't have any read permissions on. As a result the tar command is returning a non 0 exit code.

I came across the following modifier in the man pages '--ignore-failed-read', which suppresses the non 0 exit code when encountering files it cannot read. However, whenever I try using it I get the error 'unknown function modifier'.

Could anyone help me out here?

my tar command looks something like this:

tar --create --ignore-failed-read --file=test.tar my_dir

Solution

  • Your command seems to be perfectly valid and I don't see any typos/mistakes. To be absolutely sure, I just tried it on my VM running under 32 bit Debian 7.1 (wheezy) with stock kernel 3.2.0.4. As I suspected, archive has been created successfuly (the only change was, of course, the name of the source directory). I also checked version of my tar with

    tar --version
    

    which gave me following output:

    tar (GNU tar) 1.26
    

    First of all, you should check this info. If you get the same (with possible difference in version number) output, that's fine. If not (or version that seems much older), it's possible, that you are using tar, which simply doesn't support this feature.

    Also, you can check, if your tar really DOES support mentioned flag. To do this, type into console:

    tar --help | grep ignore-failed-read
    

    You should see something like this:

    --ignore-failed-read   do not exit with nonzero on unreadable files
    

    If output stays empty, that means this version of tar does not know this flag at all.

    See if any of the above helps.