
У меня есть zip-архив. unzip -l myarchive.zip
Команда выдает такой листинг:
top/subtop/files/1.txt
top/subtop/files2/2.txt
etc
Корневые папки top/subtop для всех файлов. Как извлечь эти файлы без двух папок top/subtop?
Например, когда я нахожусь в каталоге /home/myuser/public_html, files/1.txt
и files2/2.txt
мне нужно извлечь данные непосредственно в этот каталог.
Я попробовал unzip myarchive.zip top/subtop/*
, но он все равно создал верхние/нижние каталоги.
решение1
К сожалению, вы не можете этого сделать. Единственный реальный вариант — просто переместить их после извлечения.
решение2
Возможно, вы захотите попробовать tar
команду, которая имеет --strip-components
функцию и может работать с zip-файлами.
решение3
На примере JMeter:
# It's a good idea to set JMETER_HOME.
export JMETER_HOME=/usr/local/jmeter
unzip -q /tmp/apache-jmeter-5.4.1.zip -d $JMETER_HOME
for a in `ls -d -1 $JMETER_HOME/*`; do mv $a/* $JMETER_HOME; rmdir $a; done
Простой и портативный.
решение4
Я использовал эту команду, чтобы скопировать все файлы в корневой каталог после извлечения всех заархивированных файлов, это сработало отлично. Огромная экономия времени:
for /r %f in (00P*) do @copy "%f"
(http://mlichtenberg.wordpress.com/2011/01/25/command-line-fun-how-to-flatten-a-folder-hierarchy/)