Поиск по сайту:

Как извлечь отдельный файл из архива .tar/.tar.gz


Если вы когда-либо сталкивались со сценарием, когда у вас есть огромный файл резервной копии tar, но вам нужно извлечь только один файл, сегодня вы читаете нужную статью. Зачем извлекать все это только для того, чтобы получить один файл?

Вместо этого вам просто нужно знать синтаксис для извлечения одного файла из этого архива. И вот этот синтаксис:

tar --extract --file=<tarfile> <path/to/singlefile>

Так, например, если вы хотите извлечь xmlrpc.php из загруженного архива WordPress, вы должны использовать следующее, поскольку все внутри tar-файла wordpress находится в папке «wordpress».

tar --extract --file=latest.tar.gz wordpress/xmlrpc.php

Это, конечно, использует подробный синтаксис. Вместо --extract вы можете использовать -x, а вместо --file вы можете использовать -f, и вы даже можете поместить их вместе в один аргумент, например -xf. (Примечание: исторически для работы через gzip также требовалась опция -z, но в моем тестировании она отлично работает и без нее). Таким образом, более короткая команда будет:

tar -xf latest.tar.gz wordpress/xmlrpc.php

Вы также можете извлечь одну папку, используя тот же синтаксис. Например, чтобы получить всю папку wordpress/wp-includes из архива WordPress, вам нужно просто сделать:

tar -xf latest.tar.gz wordpress/wp-includes

Также есть параметр --wildcard, который можно использовать для извлечения всех файлов, соответствующих шаблону. Например, если вы хотите получить все изображения PNG из архива, вы можете сделать что-то вроде этого:

tar -xf <tarball> --wildcards '*.png'

Надеюсь, вы узнали что-то сегодня.