解凍してトップディレクトリをトリミングする方法

解凍してトップディレクトリをトリミングする方法

zip アーカイブがあります。このunzip -l myarchive.zipコマンドを実行すると、次のリストが表示されます。

top/subtop/files/1.txt
top/subtop/files2/2.txt
etc

ルート フォルダーはすべてのファイルのトップ/サブトップです。2 つのトップ/サブトップ フォルダーなしでこれらのファイルを抽出するにはどうすればよいですか?

たとえば、/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/

関連情報