[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorriso: how to find fixed-string filenames?



Listing selected files
----------------------

I want to list files found on an iso image.  The best way to list every
file would be, to my knowledge, the following:

  xorriso -indev image.iso -return_with WARNING 32 -report_about WARNING \
    -find / -exec lsdl

The -return_with WARNING is there to fail if no file could be found
(which is the case if image.iso is not a valid iso).  The -report_about
WARNING is there to avoid printing information that is not about the
files themselves.

I want to pass a fixed list of filenames to list.  The best way seems to
be to use -wholename and hope that filenames do not contain special
pattern characters:

  xorriso -indev image.iso -return_with WARNING 32 -report_about WARNING \
    -find / -wholename "$name1" -o -wholename "$name2" -exec lsdl

Is there a way to avoid the interpretation of these patterns by xorriso
or another way to list file with a fixed-string filename?

Remarks
-------

Note that selecting files is also useful for extracting (and other
actions) by removing unwanted paths first, but an alternative exists
thanks to the disabling of patterns for -cpx and -rm:

  xorriso -osirrox on -indev img.iso \
    -find / -not -wholename / -and -not -wholename "$escaped_name" -exec rm_r \
	-extract / . -rollback_end
  xorriso -osirrox on -iso_rr_pattern off -indev img.iso \
    -cp_rx "$include_name" "$(pwd)$include_name" \
	-rm_r "$exclude_name" -extract / . -rollback_end

Maybe adding a -find_pattern option or making -iso_rr_pattern enable/disable
the use of patterns by -find would be a good idea?

The system find has a similar issue, but there is a way to find fixed
filenames by using the option -exec and a system command (test and the
shell for string processing):

  name=$name find . -exec sh -c 'test "x${1##*/}" = x"$name"' script '{}' \; -print
    # $name is not passed on the command line to sh to avoid the interpretation
	# of {} by find!

Would you consider adding a -fexec to your -find to use a system command
to test a filename (and maybe more than the filename)?

Regards

-- 
G.raud Meyer


Reply to: