Не отключайте рекламу на сайте - поможете проектуx86_64: LFD10-23.05 ; Roll24.02-24.04 ; LFU22 ; FAS ; Alt-lxde3-auc i686: DDR01-21.08 Русские PuppyLinux
0 Пользователей и 1 Гость просматривают эту тему.
user@MagOS ~ $ time unsquashfs -ll /memory/data/from/0/MagOS/base/00-kernel.xzm > ./test1real 0m1,384suser 0m0,405ssys 0m0,971suser@MagOS ~ $ time ./xzm.py /memory/data/from/0/MagOS/base/00-kernel.xzm > ./test1real 0m1,416suser 0m0,559ssys 0m0,883s
#!/usr/bin/python# -*- coding:utf-8 -*-import os, sysdef getList(): command = ('unsquashfs -ll ' + sys.argv[1] + ' |sed \'1,4d\'') listing = os.popen( command ).read().split('\n') return listing for line in getList(): if len(line) != 0: items=line.split() if len(items) == 8 : print items[0], '1', items[1].split('/')[0], items[1].split('/')[1], items[2], items[3].split('-')[2] + '-' + items[3].split('-')[0] + '-' + items[3].split('-')[1], items[4], items[5].replace('squashfs-root/', ' ') + ' -> ' + items[7] if len(items) == 6 : print items[0], '1', items[1].split('/')[0], items[1].split('/')[1], items[2], items[3].split('-')[2] + '-' + items[3].split('-')[0] + '-' + items[3].split('-')[1], items[4], items[5].replace('squashfs-root/', ' ')
#!/usr/bin/python# -*- coding:utf-8 -*-import os, sys, tempfile, shutildef unsq_list(arch): command = ('unsquashfs -ll ' + arch + ' |sed \'1,4d\'') for line in os.popen( command ).read().split('\n'): if len(line) != 0: items=line.split() if len(items) == 8 : print items[0], '1', items[1].split('/')[0], items[1].split('/')[1], items[2], items[3].split('-')[1] + '-' + items[3].split('-')[2] + '-' + items[3].split('-')[0], items[4], items[5].replace('squashfs-root/', ' ') + ' -> ' + items[7] if len(items) == 6 : print items[0], '1', items[1].split('/')[0], items[1].split('/')[1], items[2], items[3].split('-')[1] + '-' + items[3].split('-')[2] + '-' + items[3].split('-')[0], items[4], items[5].replace('squashfs-root/', ' ')def copyout(arch, filename, dest): tmpdir = tempfile.mkdtemp() command = ('unsquashfs -f -d ' + tmpdir + " " + arch + ' -e /' + filename ) os.popen(command) shutil.copy2(tmpdir + '/' + filename, dest ) shutil.rmtree(tmpdir, ignore_errors=True) if sys.argv[1] == 'list': unsq_list( sys.argv[2] )if sys.argv[1] == 'copyout': copyout( sys.argv[2], sys.argv[3], sys.argv[4] )
чем то ускорить надо. Может perl или awk
что у вас по поводу модулей и f2-меню
логичнее делать из выделенного
perl тоже не вариант?
Правда на нем я тоже не умею
А уже реализовали?
+ t tq Compress tagged files to xzm module list=''; droped='' for i in %t ; do if file $i |grep -q quashfs ; then list="$list $i" elif [ -d $i ] ; then list="$list $i" else droped="$droped $i" fi done echo "Dirs and modules for mkpfs: $list" [ -n "$droped" ] && echo "Droped files (is not squashfs): $droped" echo -n "Name of the compressed file: [ $(echo $list |cut -d " " -f 1) ]: " read modname if [ "$modname"x = x ] ; then modname="" else modname="-o $modname" fi mkpfs $list -o $modname
возможно обойтись без монтирования.
Во первых только рут
при копировании из модуля нескольких файлов получим несколько монтирований (возможно тут не прав)