У меня была папка бесполезных программ на Си для проекта. Когда я сжимал его с помощью смолы, я продолжал использовать

tar -cvf c-project

и затем понял, что я устанавливаю флаг для имени файла, и я ничего не даю.

Поэтому я попытался убрать флаг f и установить команду tar -cv c-project предполагая, что именем файла tar станет c-project.tgz .

Тем не менее, это то, что произошло.

Такое поведение не появляется при использовании gzip. То есть добавлен z флаг.

Есть идеи, почему это происходит? Кажется, что содержимое - это содержимое файлов C. Тем не менее, почему они "взбираются"?

2 ответа2

1

Если вы не укажете выходной файл, то по умолчанию tar выводит значение "standard out", которое обычно является вашим экраном. Так как содержимое файла tar не может быть непосредственно читаемым человеком, на вашем экране это будет мусором. "Стандартный вывод" поведение полезно , когда вы передадите tar «s выход на другую программу, как tar -cv foodir | gzip > foodir.tgz . Более короткий способ сделать то же самое - tar -czvf foodir.tgz foodir . tar - старая программа, и ее синтаксис причудлив по историческим причинам, поэтому вы, вероятно, обнаружите, что есть просто шаблоны для выполнения общих задач, к которым вы только что привыкли.

0

Если вы посмотрите с большим вниманием, вы можете заметить, что вы написали

tar -cvf c-project

Это эквивалентно

tar -cvf c -p roject

ООО пс ... На самом деле вы пытаетесь создать tar-архив с именем c и дополнительной опцией p. Такой вариант существует. Таким образом, вы не получите ошибку p - неизвестная опция. Но вы пытаетесь архивировать dir roject. Это отсутствующий объект. К сожалению, я не вижу вас на экране. Вы должны просто добавить "c-project". И это не проблема ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .