tar эквивалент zip -o (--latest-time)?

Похоже, вы перевели свою систему в странное частично обновленное состояние, но частичные обновления не поддерживаются .Решение состоит в следующем:

Простой pacman -Syu для правильно синхронизированного зеркала решит проблему, если pacman не сломан.

Ваша проблема в том, что pacman кажется сломанным. Возможно, вам повезет, и вы сможете исправить ситуацию, просто отключив подписку пакет . Если вас беспокоит безопасность, вы можете вручную загрузить нужные вам пакеты на другой компьютер, проверить их подписи, а затем добавить их в кеш пакетов на сломанном компьютере.

Если на самом деле pacman не работает, вам необходимо вручную переустановить pacman . Это в основном требует, чтобы вы загрузили зависимости pacman и вручную извлекли их в нужные места. Какие пакеты необходимо переустановить, зависит от точного состояния вашей системы.

2
04.10.2016, 03:56
2 ответа
new_file="$(find dir/ -type f -exec stat --printf='%n\0%Y\n' {} + | sort -k2,2 -nt '\0' | tail -n1 | cut -d '' -f1)"; tar -zcf foo.tar.gz dir/; touch -r "$new_file" foo.tar.gz

Пример того, что происходит

tar -zcf foo.tar.gz dir /; touch -r fileX foo.tar.gz

Вы должны изменить foo.tar.gz , dir / в приведенной выше команде

Она

  • находит все файлы в dir / (то же самое для tarred)
  • получает метку времени последнего изменения в секундах, так как эпоха
  • сортирует численно и берет нижнюю (самую последнюю).
  • touch использует этот файл как ссылку, когда корректировка отметки времени foo.tar.gz.
2
27.01.2020, 22:04

Вероятно, не существует единственного варианта (во всяком случае, в POSIX). Я использую скрипт (touch-dirs) для установки временных меток каталогов в соответствии с самой последней временной меткой файлов в каталоге, а затем использую эту временную метку для результирующего архива.

Этот последний шаг можно сделать, используя опцию -r (ссылка) в touch. На самом деле я тоже не использую эту опцию, а вместо нее пользуюсь утилитой (cpd).

1
27.01.2020, 22:04

Теги

Похожие вопросы