Каталог Tar по умолчанию

Каталог Tar по умолчанию

Я не могу найти каталог по умолчанию, в который извлекаются файлы .tar. ОС - Ubuntu 16 4. Пожалуйста, не отвечайте: та же папка, что и файл tar, потому что его там нет (а все найденные мной руководства или вопросы используют этот ответ). Помогите, пожалуйста ?!

решение1

Когда изображение упаковано, его структура каталогов может быть сохранена. Чтобы увидеть структуру каталогов a tarбез tarего распаковки:

tar -ztvf my-data.tar.gz

-t(сокращение от ) --list:

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

Если он не находится в том же каталоге, что и tarизвлеченный файл, то он будет находиться в подкаталоге этого каталога, если только не было указано -Cили --directory:

   -C, --directory=DIR
          Change  to  DIR  before  performing any operations.  This option is
          order-sensitive, i.e. it affects all options that follow.

Попробуйте find . -name '*expected file*'поискать его в текущем каталоге.

решение2

Это каталог, который закодирован в архиве, если только он не изменен, например, -Cпри извлечении. Вы всегда можете получить список путей к файлам в архиве с помощью

tar -t -f archive.tar

Пути, хранящиеся в архиве, следующие:почти всегдаотносительные пути (если они не -Pиспользовались при создании архива), что означает, что содержимое архива будет распаковано в виде иерархии файлов в текущем каталоге (если они не были изменены с помощью -C).

решение3

Команда tarизвлекает файлы в свойтекущий рабочий каталог. При запуске tarиз оболочки это текущий рабочий каталог оболочки, тот, который установлен командой cd, отображается командой pwdи иногда отображается в приглашении. Каталог извлечения можно изменить с помощью -Cпараметра .

Многие файлы tar содержат все файлы внутри одного каталога верхнего уровня (относительно каталога извлечения), обычно с именем, которое напоминает файл tar. В этом случае все извлеченные файлы находятся в этом каталоге. Но это не обязательно, есть много файлов tar, которые содержат несколько каталогов верхнего уровня и файлов верхнего уровня. С другой стороны, tarв Ubuntu и большинстве других систем не будут извлекаться никакие файлы за пределами каталога извлечения.

Каталог извлечения вообще не зависит от расположения файла tar. (Это касается команды tarи большинства программ командной строки для работы с архивами. Программы с графическим интерфейсом могут вести себя по-другому.) Каталог извлечения — это расположение файла tar, если переданный аргумент имени файла tar tarне содержит никакой части каталога, но в общем случае это может быть где угодно.

Если вы не помните, какой был текущий каталог, когда вы запускали tarкоманду, проверьте историю оболочки (в bash нажмите Ctrl+ , Rзатем введите tar; нажмите Ctrl+ Rеще раз, чтобы повторить поиск). Если вы найдете относительный путь к архиву (например tar xf subdir/archive.tar), вы сможете выяснить, какой был текущий каталог (в этом примере это был родительский каталог каталога, содержащего архив). Конечно, это не всегда поможет, например, если путь абсолютный.

Если вы не можете найти файлы, вы можете попробовать поискать файлы, которые были созданы или изменены (точнее, любые изменения, внесенные в файл или его свойства) в нужном диапазоне времени, с помощью командыfindи его вариант -ctimeили -cmin, например

find ~ -cmin +30 -cmin -61

для поиска файлов, которые были изменены между 30 и 60 минутами назад в вашем домашнем каталоге. Вместо -cminи -ctimeвы можете использовать -cnewer somefileдля сравнения времени изменения с временем файла somefile. Вы можете добавить -name fooв конце команды find, чтобы сузить поиск до определенного имени файла, содержащегося в архиве (без какой-либо части каталога).

Если вы бегали tarнакануне или до этого, тонайтиБаза данных может дать вам знать, где находится ваш файл. Например, если архив содержит файл, some/directory/myfile.txtто locate some/directory/myfile.txtона сообщит вам, где такой файл можно найти.

Связанный контент