tar 파일을 기반으로 디렉터리 이름을 만들고 tar의 압축을 푼다.

tar 파일을 기반으로 디렉터리 이름을 만들고 tar의 압축을 푼다.

다른 압축(tgz) 파일이 있는데 압축 파일 이름으로 디렉터리 이름을 만들고 압축 파일을 해당 폴더로 이동한 다음 압축을 풀고 싶습니다.

예:-

압축파일이 2개 있는데,

   email_raw_data_latest-2017-08-01-22-00-01.tgz
   email_raw_data_latest-2017-08-02-22-00-01.tgz
   email_raw_data_latest-2017-08-03-22-00-01.tgz

이렇게 첫 번째 디렉토리를 만들고 싶습니다.

   email_raw_data_latest-2017-08-01-22-00-01
   email_raw_data_latest-2017-08-02-22-00-01
   email_raw_data_latest-2017-08-03-22-00-01 

압축된 파일을 적절한 폴더로 이동하고 압축을 풀어보세요. 막혔어요. 도와주세요.

답변1

GNU에는 tar 파일에 대한 작업을 수행하기 전에 디렉터리를 변경하는 (일명 ) 옵션이 tar있습니다 . 이를 통해 다음과 같은 작업을 수행할 수 있습니다.-C--directory

for t in *.tgz ; do
  bn="$(basename "$t" .tgz)"
  mkdir -p "$bn"
  tar xfz "$t" -C "$bn" 
  mv "$t" "$bn"
done

답변2

$ tar -xf email_raw_data_latest-2017-08-01-22-00-01.tgz --one-top-level
$ tar -xf email_raw_data_latest-2017-08-02-22-00-01.tgz --one-top-level
$ tar -xf email_raw_data_latest-2017-08-03-22-00-01.tgz --one-top-level

--최상위 수준[=DIR]
모든 파일을 DIR로 추출하거나, 인수 없이 사용하는 경우 아카이브의 기본 이름(--auto-compress에서 인식하는 표준 압축 접미사 빼기)을 따라 이름이 지정된 하위 디렉토리에 추출합니다.

관련 정보