распаковать как обрезать верхние каталоги

распаковать как обрезать верхние каталоги

У меня есть 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/)

Связанный контент