Розпакуйте лише оновлені файли


5

Чи є спосіб розпакувати zip-файл у каталог, але зробити це лише для оновлених файлів (я маю на увазі стислі файли всередині zip)? У мене є величезний каталог файлів, і лише близько 20% відрізняються.

Переважно, використовуючи командний рядок, але це необов'язково. Я використовую Windows XP.

Дякую.


Не могли б ви уточнити? Ви хочете скасувати розпакування лише у випадку, якщо .zip змінився, або ви бажаєте розпакувати лише файли в .zip, які змінилися? Крім того, яку ОС ви використовуєте?
jamesbtate

Відповіді:


1

З додатком командного рядка winzip ви можете скористатися -nпараметром:

-n

Разархівуйте лише новіші файли. Ця опція оновлює існуючі файли, якщо архівований файл новіший, і створює нові, якщо вони ще не існують.

wzunzip -n "c:\my documents\spring2007.zip" c:\semesters\spring05  

Цей приклад буде витягувати з c: \ мої документи \ spring2007.zip ТІЛЬКИ ті ​​файли, які новіші за файли, які існують у c: \ semesters \ spring05 АБО, які ще не існують у папці c: \ semesters \ spring05 .

Ви можете поєднувати його з -oопцією - "Перезаписати наявні файли без підказки (автоматично відповідь" Так "на кожен запит на перезапис)."


3
Еквівалент для * nix користувачів:unzip -u
HRJ

1

Ось ідея для початківців, яку комусь потрібно буде закінчити:

  1. Знайдіть програму zip, що перераховує файли у стислому архіві.
  2. У цьому списку є всі файли та часова мітка
  3. Використовуйте мову сценаріїв (python, batch, що завгодно), щоб порівняти модифікований час цих файлів з файлами в каталозі
  4. Попросіть мову сценарію створити аргументи, щоб додати ці файли до архіву

Крім того, розбийте папку архіву.


0

Я приїжджаю на 4 роки занадто пізно, але ей - краще пізно, ніж ніколи.

Ось проект для розпакування лише модифікованих файлів: https://code.google.com/p/unzip-skip-unchanged-files/

З TFA: "Інструмент розпакування, написаний на C #, який перевіряє хеш MD5 перед розпакуванням кожного файлу. --- Якщо хеш відповідає попередній версії, ми пропускаємо вилучення цього файлу. --- Хеші зберігаються в потоках альтернативних файлів NTFS ( в Linux слід використовувати xattr API, але це тут не реалізовано) "


0

Згаданий тут інструмент відкритих джерел виглядає покинутим, ми створили свій власний:

https://github.com/jitbit/unzipnew

(відкритий ресурс, на основі .NET / Win, нульові залежності)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.