Я не могу найти каталог по умолчанию, в который извлекаются файлы .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
она сообщит вам, где такой файл можно найти.