On 2/1/23 4:28 PM, Cameron Simpson wrote:
On 01Feb2023 13:07, Jerry James loganjerry@gmail.com wrote:
If you can make your list with find, you can also do something like this:
find [top directory] [find criteria here] -exec tar -cvzf arch.tgz {} +
This recreates the tar file once per file, ending up with a tar file containing only the last file found.
No, it does not. Note the "+" at the end, which tells the "find" command to pass as many arguments as will fit within the maximum length of a command line. Your "multiple groups" warning below still applies, but on modern systems this is quite a large limit. Run "getconf ARG_MAX" to see the limit on your system.
Or, if you can generate the list with null characters instead of spaces as the filename separators, you could do something like this:
[generate the list with nulls] | xargs -0 tar -cvzf arch.tgz
Unless there are enough files for xargs to break the files into multiple groups, in which case... again a tar file containing only the last group.