alpacon edit

로컬 에디터를 사용해 원격 서버의 파일을 편집합니다. 파일을 다운로드해 에디터로 열고, 에디터를 닫으면 원래 경로로 다시 업로드합니다. 파일 전송 및 권한 동작은 alpacon cp와 동일합니다.

alpacon edit [USER@]SERVER:PATH [flags]

원격 경로는 alpacon cp와 같은 [USER@]SERVER:/path 형식을 사용합니다.

옵션 (Options)

  -h, --help                    edit 명령어에 대한 도움말 출력
      --editor string           실행할 에디터 명령 (기본값: ALPACON_EDITOR, VISUAL, EDITOR, 다음 vi)
      --force                   10 MB 초과 파일을 확인 없이 편집
  -u, --username string         사용자 이름 지정
  -g, --groupname string        그룹 이름 지정
      --work-session string 편집을 작업 세션에 연결 ('work-session use' 설정보다 우선)
      --output string           출력 형식: table 또는 json (기본값 "table")

예제

원격 파일 편집:

alpacon edit my-server:/etc/nginx/nginx.conf

특정 사용자로 편집:

alpacon edit admin@my-server:/etc/hosts
alpacon edit -u admin my-server:/etc/hosts

특정 에디터 사용:

alpacon edit my-server:/etc/nginx/nginx.conf --editor "code --wait"

10 MB 초과 파일을 확인 프롬프트 없이 편집:

alpacon edit my-server:/var/log/large.txt --force

특정 작업 세션에 연결해 편집:

alpacon edit my-server:/etc/nginx/nginx.conf --work-session SESSION_ID

에디터 선택

에디터는 다음 순서로 결정됩니다:

  1. --editor 플래그
  2. ALPACON_EDITOR 환경 변수
  3. VISUAL 환경 변수
  4. EDITOR 환경 변수
  5. vi (기본값)

--editor 값은 셸을 거치지 않고 명령과 인자로 분리되며, 파일 경로가 마지막 인자로 추가됩니다. 파이프, 리다이렉션, && 같은 셸 문법은 동작하지 않습니다.

GUI 에디터(code, cursor, subl 등)는 창을 연 직후, 파일을 저장하기 전에 즉시 반환됩니다. wait 플래그 없이 사용하면 변경 사항이 업로드되지 않습니다. --editor "code --wait"처럼 에디터의 wait 플래그를 사용하세요. wait 플래그 없는 GUI 에디터가 감지되면 CLI가 경고를 출력합니다.

동작 방식

  • 기존 파일만 편집: 파일을 먼저 다운로드하므로 alpacon edit으로 새 원격 파일을 만들 수 없습니다.
  • 변경 시에만 업로드: 파일을 수정하지 않고 에디터를 닫으면 업로드를 생략하고 No changes를 출력합니다.
  • 대용량 파일: 10 MB 초과 파일은 열기 전에 확인 프롬프트를 표시합니다. --force로 생략할 수 있습니다. 비대화형 셸(스크립트 등)에서는 프롬프트가 표시되지 않으며 --force 없이는 편집이 거부됩니다.
  • 업로드 실패: 변경 사항을 업로드할 수 없으면 편집본을 로컬 임시 경로에 보존하고 해당 경로를 경고로 출력해 작업 내용이 유실되지 않도록 합니다.

작업 세션 요구 사항

브라우저 로그인으로 인증한 경우, alpacon edit을 실행하려면 webftp 기능을 포함한 활성 작업 세션이 필요합니다. 토큰 인증(API 토큰 또는 서비스 토큰)은 이 요구 사항을 우회합니다.

연결할 세션은 --work-session 플래그, ALPACON_WORK_SESSION 환경 변수, alpacon work-session use로 지정한 활성 세션 순으로 결정됩니다. 게이트가 편집을 거부하면 edit은 종료 코드 3으로 종료합니다. --output json으로 실행하면 stderr에서 기계가 읽을 수 있는 진단을 받을 수 있습니다. 에러 코드는 게이트 에러를 참고하세요.

최종 수정: