John Stanley wrote: >Hi, >I was wondering if it would be possible in the 'skip-old-files' option >warning messages, to have a distinction made between existing files and > >existing directories, i.e., instead of, e.g., printing: > >tar: ./usr/local: skipping existing file > >print: > >tar: ./usr/local/: skipping existing directory > >This would make it much easier to parse existing files and existing >directories. I have been using the following simple patch to handle >this in my work: > >+++ tar-master-1.26.90.new/src/extract.c 2012-11-06 >18:18:28.853013706 -0500 >@@ -644,8 +644,12 @@ maybe_recoverable (char *file_name, bool > switch (old_files_option) > { > case SKIP_OLD_FILES: >- WARNOPT (WARN_EXISTING_FILE, >- (0, 0, _("%s: skipping existing file"), file_name)); >+ if (current_stat_info.had_trailing_slash) >+ WARNOPT (WARN_EXISTING_FILE, >+ (0, 0, _("%s/: skipping existing directory"), >file_name)); >+ else >+ WARNOPT (WARN_EXISTING_FILE, >+ (0, 0, _("%s: skipping existing file"), >file_name)); > return RECOVER_SKIP; > > case KEEP_OLD_FILES:
Directories don't always have trailing slash in tar archives, so you should check for both the trailing slash or the directory attribute.