разница между двумя командами tar

я хочу заархивировать содержимое внутри /some/directory/, и в этом каталоге есть много файлов и других подкаталогов в Это.

В чем фактическая разница между приведенными ниже tar-командами? Я заметил, что последняя команда содержит больше файлов в tar-архиве по сравнению с первой.

я сравнил, используя tar -tvf | wc -lдля каждого архива

cd /some/directory/
tar -cvf /tmp/directory.tar *

по сравнению с

tar -cvf /tmp/directory.tar -C /some/directory/ .
0
16.06.2020, 02:28
1 ответ

Первая команда будет tarрекурсивно перебирать все файлы внутри /some/directory, где шаблон *совпадает. Как правило, это все не -скрытые файлы. Если вы используете bash, вам необходимо включить параметр оболочки dotglobс помощью shopt -s dotglob, чтобы также сопоставлять скрытые файлы перед запуском команды.

Вторая команда изменяет каталог на /some/directoryи включает текущий каталог .и все файлы, включая скрытые файлы внутри него. Он также добавляет ./в качестве родительского каталога в архив. Вы можете увидеть эту дополнительную папку с tar tf /tmp/directory.tar, но нет никакой разницы с первой командой при извлечении (, кроме отсутствия скрытых файлов и того, что все файлы во втором архиве имеют префикс относительного пути./)

1
18.03.2021, 23:27

Теги

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