명령줄에서 파일을 복사하여 Gnome 창에 붙여넣거나 그 반대로 붙여넣습니다.

명령줄에서 파일을 복사하여 Gnome 창에 붙여넣거나 그 반대로 붙여넣습니다.

xclip또는 를 사용하여 명령줄에서 파일의 "내용"을 복사하는 방법에 대한 많은 예가 있습니다 xsel. 내가 찾고 있는 것은 명령줄에서 파일을 복사하여 파일 탐색기에 붙여넣는 것입니다. 그래서 명령어를 이용해서 내용뿐만 아니라 파일도 복사한 뒤 CtrlvUI에 붙여넣어 보겠습니다.

고쳐 쓰다 xclip-copyfilexclip-pastefile예상한 것과 비슷하게 작동하지만 e를 실행할 때 GUI 붙여넣기가 아닌 명령을 사용해서만 붙여넣을 xclip-copyfil수 있습니다 .xclip-pastefile

답변1

저는 Ubuntu에서 Nautilus를 파일 브라우저로 사용하므로 다른 브라우저에 대해서는 말할 수 없습니다.
노틸러스가 파일 붙여넣기를 처리하는 방식은 Ctrl-v노틸러스에 매우 국한됩니다. 노틸러스는 Ctrl-v만 인식합니다.파일 붙여넣기에 응답하다파일 복사동안 실행된 명령노틸러스그 자체. 즉, Ctrl-v를 사용하여 경로를 복사한 파일을 다른 응용 프로그램에 붙여넣을 수 없습니다.

그러나 원하는 경우 Ctrl+Shift+v를 바인딩할 수 있습니다 nautilus-scripts-manager. 이 스크립트를 사용하면 원하는 거의 모든 작업을 수행할 수 있습니다.

nautilus-scripts-manager현재 디렉터리와 선택한 파일/디렉터리에 대한 일부 기본 정보에 액세스할 수 있습니다. "nautilus-scripts"에 대해 제가 특히 좋아하는 점 중 하나는 File메뉴 항목(컨텍스트 메뉴는 물론) 에 스크립트를 추가한다는 것입니다 . 이를 통해 로컬 키 바인딩을 설정할 수 있습니다노틸러스 3또는노틸러스 2.

xclip-pastefiles이미 언급한 예를 사용한 대략적인 예는 다음과 같습니다 . 현 상태에서는 xclip-copyfilesCtrl-Shift-v를 실행하기 전에 이를 설정 해야 합니다.반죽스크립트.
setup 을 실행한 후 xclip-copyfilesNautilus 창으로 이동한 다음 대상 디렉터리(또는 해당 디렉터리 내의 파일)를 선택하고 스크립트의 키 바인딩을 누르기만 하면 됩니다.Ctrl-Shift-v

#!/bin/bash   
# Note: `leafpad' is a simple text editor which doubles as a quick-and-easy testing messsage-box

dir=$(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" |sed -n 1p)
if [[ -n "$dir" ]] ;then
    # target dir from `Nautilus Scripts' (1st priority)    
    if [[ -e "$dir" ]] ;then
       [[ -d "$dir" ]] || dir="${dir%/*}" 
       [[ -d "$dir" ]] || dir=
    fi
else
  # target dir from $1 (2nd priority)
    dir="$1"
    if [[ -e "$dir" ]] ;then
       [[ -d "$dir" ]] || dir="${dir%/*}" 
       [[ -d "$dir" ]] || dir=
    fi
fi

if [[ -z "$dir" ]] ;then
    # target dir from clipboard (if not in $NAUTILUS_SCRIPT.. or  $1)
   dir="$(xclip -o -sel c)"
   if [[ -e "$dir" ]] ;then
      [[ -d "$dir" ]] || dir="${dir%/*}" 
      [[ -d "$dir" ]] || dir= 
   else
      dir=
   fi
fi

[[ -d "$dir" ]] || { echo "$(basename "$0"): target directory not found in clipboard" |leafpad; exit 1; } 

{ cd   "$dir"
  echo "Current  Directory:" 
  echo "  $dir"
  echo "======="
  echo  xclip-pastefile # run your command  (`echo' is for testing)
} 2>&1 |leafpad 

관련 정보