1

Мне было интересно, можно ли скопировать или вырезать файл в буфер обмена, а затем вставить его в другой каталог. Я провел быстрое исследование и нашел только информацию о том, как скопировать содержимое файла в буфер обмена, но не сам файл.

3 ответа3

3

Когда вы нажимаете Ctrl-C над файлом в файловом менеджере, содержимое файла НЕ копируется в буфер обмена. Простой тест: выберите файл в файловом менеджере, нажмите Ctrl-C, откройте текстовый редактор, нажмите Ctrl-V. Результатом является не содержимое файла, а его полный путь.

В действительности ситуация немного сложнее, потому что вы не можете сделать наоборот - скопируйте список имен файлов из текстового редактора и вставьте их в файловый менеджер.

Чтобы скопировать некоторые данные из командной строки в буфер обмена X11, вы можете использовать команду xclip , которую можно установить с

sudo apt-get install xclip

скопировать содержимое файла или вывод какой-либо команды в буфер обмена

cat ./myfile.txt|xclip -i

затем текст можно вставить куда-нибудь, используя среднюю кнопку мыши (это называется "основной буфер выбора").

Если вы хотите скопировать данные в "буфер обмена", чтобы их можно было вставить в приложение с помощью Ctrl-V, вы можете сделать

cat ./myfile.txt|xclip -i -selection clipboard

Чтобы иметь возможность копировать файлы из командной строки и вставлять их в файловый менеджер, необходимо указать правильный "целевой атом", чтобы файловый менеджер распознавал данные в буфере обмена, а также предоставлял данные в правильном формате - к счастью, в случае копирования файлов в файловом менеджере это просто список абсолютных имен файлов, каждое в новой строке, что-то, что легко генерировать с помощью команды find :

find ${PWD} -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list

(по крайней мере, это работает для меня в KDE). Теперь вы можете заключить в небольшой скрипт, который вы можете назвать, скажем, cb:

#!/bin/sh
xclip -i -selection clipboard -t text/uri-list

затем вы помещаете его в ~/bin , устанавливаете исполняемый бит на него и используете его так:

find ${PWD} -name "*.txt"| cb

Хорошо, не правда ли?

Источник из аскубунту

0

Если вы решите поместить путь к файлу в системный буфер обмена, вы можете использовать это в вашем ~/.bashrc:

yankpath() {
  filepath=$(realpath "$1")
  # We use the pipe to put the file name on the clipboard.
  # If we did "xclip -selection clipboard $filepath", the
  # contents of the file would be on the clipboard.
  # -rmlastnl removes the ending newline from the file path.
  echo $filepath | xclip -rmlastnl -selection clipboard
}

Затем вы можете yankpath ./a_file и полный путь к файлу a_file будет в вашем буфере обмена X-системы.

-1

Это работает в Mac Terminal и Linux на Digital Ocean.

pbcopy <~/.ssh/id_rsa.pub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .