간단한 질문입니다. 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를 다시 패키지하는 방법은 무엇입니까?):
당신이 사용할 수있는앱 이미지 도구단지 기존 AppImage를 AppDir로 추출하는 것이 아닙니다. 이를 사용하여 AppDir(아마도 일부 변경 후)를 (수정된) AppImage로 다시 패키징할 수도 있습니다.
그냥 실행
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