L’ajout de –ignore-failed-read à tar provoque l’erreur “modificateur de fonction inconnu”

J’utilise la commande tar sous UNIX pour effectuer des sauvegardes de répertoires particuliers. Cependant, certains répertoires contiennent des fichiers / sous-répertoires sur lesquels l’utilisateur actuel ne dispose d’aucune autorisation de lecture. En conséquence, la commande tar renvoie un code de sortie différent de 0.

J’ai trouvé le modificateur suivant dans les pages de manuel ‘–ignore-failed-read’, qui supprime le code de sortie non 0 lorsqu’il rencontre des fichiers qu’il ne peut pas lire. Cependant, chaque fois que j’essaie de l’utiliser, j’obtiens l’erreur “modificateur de fonction inconnue”.

Quelqu’un pourrait-il m’aider ici?

ma commande tar ressemble à ceci:

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

Votre commande semble être parfaitement valide et je ne vois aucune faute de frappe / erreur. Pour être absolument sûr, je l’ai juste essayé sur ma VM fonctionnant sous Debian 7.1 (Wheezy) 32 bits avec le kernel 3.2.0.4. Comme je le pensais, l’archive a été créée avec succès (le seul changement a été, bien sûr, le nom du répertoire source). J’ai aussi vérifié la version de mon tar avec

 tar --version 

ce qui m’a donné la sortie suivante:

 tar (GNU tar) 1.26 

Tout d’abord, vous devriez vérifier cette information. Si vous obtenez le même résultat (avec une différence de numéro de version possible), c’est bien. Si ce n’est pas le cas (ou la version qui semble beaucoup plus ancienne), il est possible que vous utilisiez tar, qui ne supporte tout simplement pas cette fonctionnalité.

En outre, vous pouvez vérifier si votre tar prend vraiment en charge le drapeau mentionné. Pour ce faire, tapez dans la console:

 tar --help | grep ignore-failed-read 

Vous devriez voir quelque chose comme ceci:

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

Si la sortie rest vide, cela signifie que cette version de tar ne connaît pas ce drapeau.

Voir si l’un des éléments ci-dessus aide.