У меня есть архив tar, и я хочу использовать tar -xvf
.
В этом архиве tar у меня есть дерево каталогов, содержащее пару файлов. В моей системе Solaris 10 это дерево каталогов уже существует и содержит несколько файлов.
Если я распаковываю архив, то перезаписывается ли все дерево каталогов или только файлы, содержащиеся в архиве?
Будут ли удалены файлы, у которых нет корреспондента в архиве?
tar
solaris-10
Фелиция
источник
источник
Ответы:
Уже существующие дубликаты файлов могут быть распакованы или не распакованы или перезаписаны в зависимости от вашей системы. Однако обычно это происходит по умолчанию. Файлы, которые находятся в архиве, но не в вашей системе, будут просто добавлены в новые или существующие каталоги в вашей системе.
Dir
/test
Архив
test.tar
вероятно будет объединен с:
Добавление
-k
флага в команду tar гарантирует, что ни один из файлов в вашей целевой директории не будет перезаписан:источник
noclobber
(который также существует в оболочках POSIX, кстати) влияет только на файлы, перенаправленные с>foo
помощью оболочки. Это не влияет на смолу.echo foo > bar.txt
что не будет перезаписывать bar.txt, если он существует. Это не влияет на то, что программа, такая как tar, будет перезаписана.dir/file1
.Самый простой способ - создать новый пустой каталог, перейти к нему и извлечь из него файлы. Вы должны быть осторожны, хотя извлеченные файлы являются относительными (начинаются с ./) и не абсолютными (начинаются с /). Пролистайте оглавление через less, чтобы увидеть, в каком случае вы не знаете (tar -tvf tar_filename | less)
Вы можете узнать, перезаписывается ли ваша версия tar по умолчанию или нет, заглянув на страницу руководства. Tar не удаляет файлы во время извлечения, что является еще одной причиной, по которой люди обычно начинают с нового, пустого каталога перед извлечением.
источник