Теперь про формат вывода. То есть кто есть правильный список.
unsquashfs -ll модуль.xzm даст вот такой вывод
unsquashfs -ll ./111.xzm
Parallel unsquashfs: Using 4 processors
3 inodes (1 blocks) to write
drwxrwxrwt root/root 37 2018-03-07 10:51 squashfs-root
drwxr-xr-x root/root 37 2018-03-07 10:51 squashfs-root/222
drwxr-xr-x root/root 37 2018-03-07 10:50 squashfs-root/222/444
-rw-r--r-- root/root 0 2018-03-07 10:50 squashfs-root/222/444/111
drwxr-xr-x root/root 26 2018-03-07 10:49 squashfs-root/222/444/555
drwxr-xr-x root/root 3 2018-03-07 10:49 squashfs-root/222/444/555/666
lrwxrwxrwx root/root 9 2018-03-07 10:51 squashfs-root/222/777 -> ./444/111
-rw-r--r-- root/root 0 2018-03-07 10:51 squashfs-root/ggg
А нужено сделать из него такой:
user@MagOS ~ $ ./xzm list ./111.xzm
drwxr-xr-x 1 root root 37 03-07-2018 10:51 222
drwxr-xr-x 1 root root 37 03-07-2018 10:50 222/444
-rw-r--r-- 1 root root 0 03-07-2018 10:50 222/444/111
drwxr-xr-x 1 root root 26 03-07-2018 10:49 222/444/555
drwxr-xr-x 1 root root 3 03-07-2018 10:49 222/444/555/666
lrwxrwxrwx 1 root root 9 03-07-2018 10:51 222/777 -> ./444/111
-rw-r--r-- 1 root root 0 03-07-2018 10:51 ggg
То есть по полям так:
<права> <пробел><кол-во ссылок><пробел><юзер><пробел><группа><пробел><размер><пробел><дата><пробел><время><пробел>[путь/]<имя файла>[<пробел>"->"<пробел>[путь/]<куды ссылка>]
То что в квадратных скобках не обязательно. То есть если файл в корне архива, пути перед ним нет. Последний кусок "-> [путь/]<пробел><куды ссылка>" только для ссылок.
Теперь то что удалось вычислить методом научного тыка. Формат даты отличается, и это важно ММ-ДД-ГГГГ и не иначе. В конце строк пробелов быть не должно, глючит. Количества ссылок в выхлопе unsquashfs нет, посчитать конечно можно, но думаю можно упустить, просто пишем 1 (0 нельзя, не работает).
Вторая функция для копирования. Ее пока вообще не делал.