디렉터리의 모든 .rar 파일을 동일한 이름의 폴더에 추출합니다.

디렉터리의 모든 .rar 파일을 동일한 이름의 폴더에 추출합니다.

내가 하려는 일의 예는 다음과 같습니다.

다음 내용이 포함된 폴더("dir")가 있습니다.

dir
|_sub1.rar
|_sub2.rar
|_sub3.rar

~/를 디렉토리에 넣고 모든 .rar 파일을 추출하고 내용을 동일한 이름의 폴더에 저장하는 명령을 실행하려고 합니다. sub1.rar은 sub1로 추출되어야 하고, sub2.rar은 sub2로 추출되어야 합니다.

답변1

set -e
cd dir
for rar in ./*.rar
do
  [ -f "$rar" ] || continue
  dir=${rar%.rar}
  mkdir "$dir"
  (
     cd "./$dir"
     unrar x "../$rar"
  )
  # maybe rm "$rar"
done

여기에는 영리한 것이 없습니다. 추출을 수행하는 옵션이 포함된 명령이 있다고 가정해 보겠습니다 unrar. x./*.rar과 일치하는 콘텐츠에 대해 루프를 실행하고 파일인지 확인한 다음 디렉터리를 만든 다음 하위 쉘을 사용하여 디렉터리를 변경하고 추출하면 됩니다.

관련 정보