Как переименовать верхнюю папку в архиве при распаковке?

Я имею в виду, что технически это ошибка памяти; но это не ошибка памяти, на которую вы намекаете. ip 0000000000423a29— это указатель команды , а sp 00007ffcaea16110— регистр стека . Тогда у вас естьerror 4:

$ errno 4
EINTR 4 Interrupted system call

trap divide error— ошибка деления; просматривая источник, вот пример .

Это ошибка нехватки памяти? Нет, потому что я не видел ошибок OOM. Память Linux — хитрый зверь; вы должны понимать, как интерпретировать результаты .

Вы столкнулись с ошибкой приложения; не ошибка линукса. Единственный возможный способ, которым это может быть фактической ошибкой памяти, - это если вы проведете тест памяти и обнаружите, что у вас плохая память.

1
27.08.2019, 04:08
2 ответа

Как указал steeldriver, tar --transformожидает выражение замены sed, которое использует базовый синтаксис регулярных выражений, а не расширенный синтаксис регулярных выражений, и, в частности, оператор «один или несколько» — это \+, а не +. Видеть Почему мое регулярное выражение работает в X, но не работает в Y?

tar xvfz somearchive.tar.gz --transform 's/^[a-zA-Z]\+-[0-9.]\+/somearchive/'

А можно просто

tar xvfz somearchive.tar.gz --transform 's!^[^/]*!somearchive!'
1
28.04.2021, 23:30

Ответ Жиля полностью соответствует моему вопросу. Однако я также обнаружил, что эта альтернатива работает :

.
mkdir somearchive
tar xvfz somearchive.tar.gz --strip 1 -C somearchive
0
28.04.2021, 23:30

Теги

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