Hello Pavel, > Just a nit, here should be (for readers): > > $ tar -c file | tar -t dir
Oops, thanks you. That's exactly what I mean. > I don't like the '--ignore-missing' approach. That adds another > non-symetric option to tar. We have the '--ignore-failed-read' option > which works for archive creation and --ignore-missing works just for > archive extraction. How can we solve this? AFAIU you suggest something like reusing --ignore-failed-read for the feature in question (correct me if I'm wrong). But --ignore-failed-read is not exactly what I mean because: 1. it outputs a warning meaning "something unexpected happens": $ tar --ignore-failed-read -cf /dev/null non-existing tar: non-existing: Warning: Cannot stat: No such file or directory $ 2. according to the sources it means ignoring any read errors, not only "existance" ones, On the contrary, the suggested --ignore-missing suggests that: 1. missing member is expected so no warning is necessary when this happens, 2. if a member exists but cannot be processed for some other reason, an error must still be returned. If I correctly understand you --ignore-missing can be modified to ignore missing files on archive creation as well: $ tar --ignore-failed-read -cf /dev/null non-existing tar: non-existing: Warning: Cannot stat: No such file or directory $ echo $? 0 $ tar --ignore-missing -cf /dev/null non-existing $ echo $? 0 $ If a file exists and is unreadable for some other reason (e.g. permissions) an error is still returned (unless using --ignore-failed-read) and a warning/error is printed. In this case there are questions: 1. Must --ignore-missing be applied to symlinks leading nowhere? 1.a. Must we also take into account --dereference? 2. Are there cases where --ignore-missing must be applied not only to files provided on the command line/TAR_OPTIONS/-T? 3. (combination of 1. and 2.) How must tar behave if it finds a broken symlink inside a directory provided on the command line? IMHO, 1. no (unless --dereference is used, but it's case 1.a.), 1.a. uncertain, probably no (if a symlink exists it must reference an existing file or an error is returned), 2. no, 3. it must behave as if --ignore-missing is not used. It's just a quick thought. I have no use case for --ignore-missing during archive creation right now so I might be wrong. What do you think? -- Vladimir A. Pavlov