The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Раздел полезных советов: Скрипт для конвертации архива gz в lzma, auto_tips (ok), 27-Фев-22, (0) [смотреть все] +2

Сообщения [Сортировка по времени | RSS]


44. "Раздел полезных советов: Скрипт для конвертации архива gz в lzma"  +/
Сообщение от pavlinux (ok), 25-Апр-22, 12:23 

#!/bin/bash
#
# перед стартом проверить наличие find, file, rename, stat, chmod, chown, touch, zcat, lzma, ...

for d in $(find -noleaf -xdev -type d)
   do
      pushd .;
      cd $d
      for i in $(ls -1 *[gG][zZ]); # .tgz, .GZ тоже бывают.
         do
           if [ "$(file --mime-type $i|cut -d' ' -f2)" != "application/gzip" ];
              then
                   continue;
           fi
           # тут должно быть определение прав доступа на (запись, chmod/chown оригинала)
           zcat $i | lzma -cz9 > $i.lzma;
           touch -a -d "`stat -c '%x' $i`" $i.lzma;
           touch -m -d "`stat -c '%y' $i`" $i.lzma;
           chown "`stat --printf '%u:%g' $i`" $i.lzma;
           chmod "`stat -c '%a' $i`" $i.lzma;
           rename 's/gz.lzma/lzma/' $i.lzma
           rm $i;
       done;
      popd;
done


Ответить | Правка | Наверх | Cообщить модератору

45. "Раздел полезных советов: Скрипт для конвертации архива gz в lzma"  +/
Сообщение от Аноним (46), 28-Апр-22, 15:18 
> if [ "$(file --mime-type $i|cut -d' ' -f2)" != "application/gzip" ]; then continue; fi

case "$(env LC_ALL=C file --mime-type --brief -- "${i}")" in application/gzip) continue ;; esac

Ответить | Правка | Наверх | Cообщить модератору

51. "Раздел полезных советов: Скрипт для конвертации архива gz в lzma"  +/
Сообщение от другой Аноним (?), 25-Июн-22, 14:02 
[~/src]:$ file --ver
file-5.33
magic file from /etc/magic:/usr/share/misc/magic

[~/src]:$ file --mime-type gpu_burn-0.4.tar.gz
gpu_burn-0.4.tar.gz: application/x-gzip

--

надо бы ещё проверять, а все ли утилиты файл возвращают application/gzip или кто-то application/x-gzip?

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

52. "Раздел полезных советов: Скрипт для конвертации архива gz в lzma"  +/
Сообщение от pavlinux (ok), 20-Июл-22, 19:12 
> надо бы ещё проверять, а все ли

Я тож считают, что за время гемора в разработке этого скрипта,
можно было заработать на покупку 100Tb SSD. Это к вопросу об экономии места.  

Портабельность тут почти на нуле. Напр. на SCO UNIX иль IRIX 7 не взлетит.
Не полетит на busybox-based дистрах, в Андроидах, скорее всего с BSD до 9 будут проблемы...


Для универсальности надо либо писать на ANSI C89/C++98/Perl 2.0/Python2,  
либо тестить скрипты в csh на FreeBSD/NetBSD версий 1997-2000 годов.


Ответить | Правка | Наверх | Cообщить модератору

62. "Раздел полезных советов: Скрипт для конвертации архива gz в lzma"  +/
Сообщение от OpenEcho (?), 25-Фев-23, 23:40 
> for i in $(ls -1 *[gG][zZ]);

С этим можно хорошенько нарваться если в директории будет очень много файлов, т.к. можно легко нарваться на лимит CLI


Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру