Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: tar.gz упаковка каждого файла в директории в отдельный архив ???  (Прочитано 924 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SashkaDotCom

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
как засунуть все файлы в архив понятно, но тут задача стоит паковать файлы в директории каждый файл отдельный архив оригинал после архивации удаляется... ума не приложу как, может кто подскажет?

Оффлайн Sergiy17

  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
find . -exec tar czf ~/{}.tar {} \;
Лучший способ в чём-то разобраться до конца — это попробовать научить этому компьютер." (с) Дональд Кнут

Оффлайн kalek

  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
В каталоге с файлами запускаем:
for i in `ls`; do tar --remove-files -czf $i.tar.gz $i; doneТолько если нужны архивы отдельных файлов, то зачем нужен tar - не проще сделать просто
gzip *

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
for i in `ls`
Ну если идти по пути «улучшательства» это никуда не годится. Очень не рекомендуется парсить выхлоп ls, да и необходимости в лишней комнде нет
Код: Bash
  1. for i in *
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн kalek

  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
При помощи ls можно сделать более универсально - прописать полный адрес и тогда запускать можно не только из каталога с файлами, а из любого места.
Хотя если выполнять только в текущей папке, то согласен, лучше будет писать for i in *
В любом случае проще и удобнее сказать просто
gzip /путь/к/файлам/*и каждый файл отдельно запакуется, и оригиналы удалятся, и команда всего одна.

Оффлайн SashkaDotCom

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
Пока вышел из положения следующей командой

find . -name '<*>' -type f -exec gzip '{}' \;

буду дальше думать над скриптом, который будет раскладывать по дате/месяц/год уже архивы созданные
« Последнее редактирование: 28 Сентябрь 2016, 09:57:44 от SashkaDotCom »

Оффлайн Сэм

  • Активист
  • *
  • Сообщений: 338
    • Просмотр профиля
я пакую каждый файл в отдельный архив Double Commander
Kubuntu 18.04.1 LTS х64; GeForce GT 540M; Intel® Core™ i5-2410M CPU @ 2.30GHz×4

Оффлайн SashkaDotCom

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
я пакую каждый файл в отдельный архив Double Commander

да если так то можно и обычным mc пользоваться, какой смысл в аля тотал командер ? да и логов в кол-ве 1500-2000 штук руками загонять в архив знаешь, не самое приятное занятие ))))

 

Страница сгенерирована за 0.067 секунд. Запросов: 24.