AppImage에서 파일을 추출하려면 어떻게 해야 하나요?

AppImage에서 파일을 추출하려면 어떻게 해야 하나요?

간단한 질문입니다. AppImage에서 파일을 어떻게 추출할 수 있나요?

GUI, CLI는 작업이 완료되는 한 중요하지 않습니다.

중요한 경우 openSUSE Tumbleweed를 사용하고 있습니다.

답변1

첫 번째, AppImage 파일이 최신 버전의 내부 형식을 사용하고 있는지 확인하세요.

/path/to/your.AppImage --appimage-help

출력에 다음 줄이 표시되는 경우:

--appimage-extract              Extract content from embedded filesystem image

진행 방법을 스스로 결정할 수 있습니다. 이 경우에는 (최신)유형 2AppImage 형식이 눈앞에 있습니다. (명령의 '경로' 부분은 상대적이거나 절대적일 수 있습니다.)

두번째, 첫 번째 명령이 작동하지 않으면 도우미 도구를 사용할 수 있습니다. 그러나 이를 위해서는 sudo/root 권한이 필요합니다.다운로드appimagetool(물론 AppImage로 제공됩니다). 실행 가능하게 만들고 다음을 실행하십시오.

/path/to/appimagetool-x86_64.AppImage --list /path/to/your.AppImage

그러면 다음에 포함된 모든 파일과 해당 (상대) 경로 목록이 제공됩니다.your.AppImage. 추출하려면your.AppImage이름이 있고 다음 위치에 있는 디렉토리에/경로/to/somedir, 달리다

mkdir /path/to/somedir
/path/to/appimagetool-x86_64.AppImage /path/to/your.AppImage /path/to/somedir

제삼, 도우미 도구 없이도 AppImages(유형 1 및 유형 2)를 마운트할 수 있습니다.

  • 유형 1:

    mkdir mountpoint
    sudo mount -o loop my.AppImage mountpoint/
    
    # You can now inspect the contents
    # You can now also copy the contents to a writable location of your hard disk
    
    sudo umount mountpoint/
    # Do not forget the umount step!
    # If you do forget it, your system may exhibit unwanted behavior.
    
  • 유형 2:

    mkdir mountpoint
    my.AppImage --appimage-offset
    123456   # This is just an example output
    
    sudo mount my.AppImage mountpoint/ -o offset=123456
    
    # you can now inspect the contents
    
    sudo umount mountpoint/
    # Do not forget the umount step!
    # If you do forget it, your system may exhibit unwanted behavior.
    

'편집증'에 대한 힌트:AppImage를 신뢰하지 않으려면 세 번째 방법이 더 좋습니다. 왜냐하면 실행(유형 2 AppImages의 경우) the.AppImage --appimage-extract또는 the.AppImage --appimage-mount또는 the.AppImage --appimage-offset은 실제로 AppImage(그 내용은 아님)를 실행하고 있음을 의미하기 때문입니다.

업데이트:

아래 댓글에서 @jayarjo의 질문에 답하려면(수정 후 AppImage를 다시 패키지하는 방법은 무엇입니까?):

  1. 당신이 사용할 수있는앱 이미지 도구단지 기존 AppImage를 AppDir로 추출하는 것이 아닙니다. 이를 사용하여 AppDir(아마도 일부 변경 후)를 (수정된) AppImage로 다시 패키징할 수도 있습니다.

  2. 그냥 실행

     appimagetool -v /path/to/AppDir
    

    명령 출력 보기(자세하게 작성됨)-v) 새로 생성된 AppImage의 위치와 이름입니다. 그게 다야.

답변2

확장자를 .7z로 이름 바꾸기

$ mv file.AppImage file.7z

파일 롤러로 추출

$ file-roller --extract-here file.7z 

Linux Mint에서 테스트되었습니다.

답변3

오른쪽 클릭으로만 이름을 바꿉니다. 예:

압축-pdf-v0.1-x86_64.AppImage

에게:

압축-pdf-v0.1-x86_64.zip

그런 다음 오른쪽 클릭

"여기에 추출"

그리고 일하는 중

하나의 폴더에 있는 모든 파일을 추출합니다.

답변4

여기에 대한 답변을 바탕으로 이 간단한 bash 스크립트를 만들었습니다. 하지만 루프 장치로 추출할 수 있는 AppImage를 본 적이 없습니다. 편집: 방금 했습니다: "wxHexEditor"

여기:

#!/bin/bash

APP="$2"
UNPK="$(echo $APP | sed 's/\.AppImage//')"

case "$1" in
  -a)
      chmod +x $APP;
      ./$APP --appimage-extract
      mv squashfs-root $UNPK
      ;;
  -b)
      mkdir -p /tmp/$UNPK
      sudo mount -o loop $APP /tmp/$UNPK &>/dev/null
      mkdir -p ~/Desktop/$UNPK
      cp -R /tmp/$UNPK/* ~/Desktop/$UNPK &>/dev/null
      sudo umount /tmp/$UNPK
      ;;
  *)
      echo
      echo "   Usage: appunpack [option] AppImageFile"
      echo 
      echo "   Options: -a  Unpack using --appimage-extract"
      echo "            -b  Unpack using a loop device"
      ;;
esac

관련 정보