Ответ 1
Добавьте опцию -C
, чтобы выбрать целевой каталог:
for i in *.tar.gz; do tar xvzf $i -C path/to/output/directory; done
У меня есть около 200 000 превью в папке, которая все gzipped заканчивается на .tar.gz Я ищу, чтобы извлечь все файлы в этой папке, но в другую папку. Кто-нибудь знает команду для этого? Я нашел это онлайн, но я не знал, как использовать его для извлечения в другую папку.
for i in *.tar.gz; do tar -xvzf $i; done
Добавьте опцию -C
, чтобы выбрать целевой каталог:
for i in *.tar.gz; do tar xvzf $i -C path/to/output/directory; done
Сейчас вы используете
tar
чтобы извлечь все файлы. Я считаю, что вы можете установить каталог для вывода.
Это будет примерно так:
for i in *.tar.gz; do tar -xvzf $i -C directory; done
где каталог - это путь к папке, в которую вы хотите извлечь файлы.
Обратитесь к http://www.computerhope.com/unix/utar.htm (документация по tar).
actdir=`pwd`
for files in *tar.gz ; do
filedir=`basename $files .tar.gz`
mkdir $filedir
cd $filedir
tar -xzf ../$files
cd $actdir
done
HTH
Опция -C, вероятно, лучше. Вы также можете сделать:
$mkdir/путь/в/новая папка
$ for я in *.tar.gz; do files = "$ files $(readlink -f $i)"; done # строит абсолютный список имен файлов
$ cd/путь/в/новая папка
$ for я в $файлах; do tar -zxvf $i; сделано