gunzip을 실행하고 zip 파일 이름으로 디렉터리를 만듭니다.

gunzip을 실행하고 zip 파일 이름으로 디렉터리를 만듭니다.

다음 gzip 파일이 있습니다: hdf5-1.8.18.tar.gz. 다음을 사용하여 파일의 압축을 풀 때:

gunzip < hdf5-1.8.18.tar.gz | tar xf -

생성된 다음 디렉토리에 추출됩니다. hdf5-1.8.18. "-" 때문에 디렉터리 사용이 그다지 편리하지 않아서 다음 명령을 사용하여 디렉터리 이름을 변경했습니다.

mv hdf5-1.8.18 hdf5

하지만 이 명령을 사용하면 "1.8.18" 버전 정보가 손실되므로 다음과 같은 추악한 해결 방법을 사용할 수 있습니다.

mkdir hdf5
mv hdf5-1.8.18 hdf5/1.8.18

나는 이 솔루션이 보기 흉하다고 생각하므로 이 작업을 수행하는 더 직접적인 방법이 없는지 궁금합니다. 감사합니다!

답변1

당신이 보고 싶어할 수도 있는 -C옵션 tar.

tar zxf hdf5-1.8.18.tar.gz -C hdf

압축을 풀고 압축을 풀고 hdf/디렉토리 아래에 디렉토리를 배치합니다.

답변2

첫째, 질문을 조금 바꾸어 말하면 더 쉬울 것입니다. 일종의 스크립트로 쉽게 해결할 수 있을 것 같습니다. 다음은 BASH 스크립트에서 작동합니다. 파일 이름을 첫 번째 인수로 사용하여 실행하십시오. 예를 들어 "./change_name_script.sh hdf5-1.8.18.tar.gz"를 입력하면 원하는 방식으로 작동합니다.

#!/bin/bash
filename=$1

gunzip < $filename | tar xf -
move_filename=$(echo $filename | sed -r 's/.tar.gz$//')
first_part=$(echo "$move_filename" | sed -r 's/-.*$//')
second_part=$(echo "$move_filename" | sed -r 's/^.*-//')

mkdir $first_part
mv $move_filename $first_part/$second_part

관련 정보