Во-первых, я НЕ рекомендую продолжить использовать NTFS, поскольку ntfs implemention в Linux была бы производительность и проблема безопасности в любое время.
Существует несколько вещей, которые можно сделать:
ext4
или btrfs
bfq
preload
systemd
предварительно загружать при начальной загрузкеВозможно, Вы хотите дать ему попытку :-)
Можно также использовать tar -zxvf <tar filename> <file you want to extract>
Необходимо записать имя файла exacty как tar ztf test.tar.gz
шоу это. Если это говорит, например. ./extract11
, или some/bunch/of/dirs/extract11
, это - то, что необходимо дать (и файл обнаружится под точно, что имя, необходимые каталоги создаются автоматически).
-x
: дает tar команду извлекать файлы.-f
: указывает имя файла / tarball имя.-v
: Подробный (показывают прогресс при извлечении файлов).-z
: пропустите архив через gzip, используйте для распаковки .gz файлов.Ваш пример работает на меня при исключении фигурных скобок
$ tar --extract --file=test.tar.gz extract11
Если Ваш файл extract11 находится в подпапке, необходимо указать путь в tarball.
$ tar --extract --file=test.tar.gz subfolder/extract11
$ tar --extract --file=test.tar.gz extract11
tar: extract11: Not found in archive
tar: Error exit delayed from previous errors
– Ankit Vashistha
16.01.2013, 09:51
Предположим, что у вас есть тарбол под названием lotofdata.tar.gz
, и вы просто знаете, что там есть один файл, который вам нужен, но все, что вы можете запомнить, это то, что в его названии есть слово contract
. У вас есть два варианта:
Или используйте tar
и grep
, чтобы перечислить содержимое вашего тарбола, чтобы узнать полный путь и имя любого файла, который соответствует известной вам части, а затем используйте tar
, чтобы извлечь этот один файл, теперь вы знаете его точные детали, Или вы можете использовать два малоизвестных переключателя, чтобы просто извлечь все файлы, которые соответствуют тому, что мало что вы знаете о своем имени файла - вам не нужно знать полное имя или какую-либо часть пути к нему для этой опции. Подробности:
Вариант 1
$ tar -tzf lotsofdata.tar.gz | grep contract
В нем перечислены все файлы, имена которых содержат вашу известную часть. Затем вы извлекаете то, что хотите использовать:
$ tar -xzf lotsofdata.tar.gz <full path and filename from your list above>
Вам может понадобиться ./
перед вашим путем, чтобы он заработал.
Вариант 2
$ tar -xzf lotsofdata.tar.gz --wildcards --no-anchored '*contract*'
До вас, который вам кажется более простым или наиболее полезным.
Ниже приведены примеры извлечения конкретных файлов из файла tar.gz.
Из локального файла:
$ tar xvf file.tgz path/README.txt 2nd_file.txt
Из удаленного URL:
$ curl -s http://example.com/file.tgz | tar xvf - path/README.txt 2nd_file.txt
я пытался извлечь пару сотен файлов из архива с тысячами файлов на днях. На нужные мне файлы нельзя ссылаться с помощью одного подстановочного знака. Я погуглил и нашел эту страницу.
Однако ни один из вышеперечисленных приемов не подходит для моей задачи. В конце концов, я прочитал этого человека и нашел эту опцию - files-from
, так что мое окончательное решение -
gunzip < thousands.tar.gz | tar -x -v --files-from hundreds.list -f -
, и оно работает как шарм.
Обновление: Файл списка должен иметь тот же формат, что и в tar -tvf
, иначе вы не сможете извлечь какие-либо файлы.
Для извлечения только файлов, соответствующих определенному шаблону:
for i in $(tar ztf test.tar.gz | grep 2021-01); do tar -xzvf test.tar.gz $i; done
$ tar -zxvf test.tar.gz extract11
tar: extract11: Not found in archive
tar: Error exit delayed from previous errors
– Ankit Vashistha 16.01.2013, 09:52tar tf archive.tar.gz | grep extract11
.please проверяют, является ли extract11 в архиве или не – harish.venkat 16.01.2013, 10:06tar ztf test.tar.gz
шоу это. Если это говорит, например../extract11
, илиsome/bunch/of/dirs/extract11
, это - то, что необходимо дать (и файл обнаружится под точно, что имя, необходимые каталоги создаются автоматически). – vonbrand 21.01.2013, 22:16-z
опция не работает в некоторых версиях Unix как HP-UX. – Ankit Vashistha 26.08.2015, 09:54