Qual è l'equivalente della riga di comando della copia di un file negli Appunti?


89

Qual è la riga di comando equivalente a premere CTRL + C su un file nel file manager in modo che il file (non il nome file) venga copiato negli appunti?

Una situazione in cui ciò può essere utile e veloce, ad esempio, è quando si desidera copiare negli Appunti un file dalla directory in cui ci si trova nel terminale per incollare rapidamente il file nella directory in cui ci si trova nel file manager. Ce ne sono altri


Questo non mi sembra davvero un duplicato. Una risposta riguarda in generale la copia incolla in generale, e questa riguarda la copia di un argomento specifico per il file
Ulysse BN,

Risposte:


104

Quando si preme Ctrl-C su un file nel file manager, il contenuto del file NON viene copiato negli Appunti. Un semplice test: seleziona un file nel file manager, premi Ctrl-C, apri un editor di testo, premi Ctrl-V. Il risultato non è il contenuto del file ma il suo percorso completo.

In realtà la situazione è un po 'più complicata perché non puoi fare il contrario: copia un elenco di nomi di file da un editor di testo e incollali nel file manager.

Per copiare alcuni dati dalla riga di comando negli Appunti X11 è possibile utilizzare il xclipcomando, che può essere installato con

sudo apt-get install xclip

per copiare il contenuto di un file o l'output di alcuni comandi negli appunti

cat ./myfile.txt|xclip -i

il testo può quindi essere incollato da qualche parte usando il pulsante centrale del mouse (questo si chiama "buffer di selezione principale").

Se vuoi copiare i dati nella selezione "appunti", in modo che possano essere incollati in un'applicazione con Ctrl-V, puoi farlo

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

Per poter copiare i file dalla riga di comando e incollarli in un file manager, devi specificare un "atomo di destinazione" corretto in modo che il file manager riconosca i dati negli appunti e fornisca anche i dati nel formato corretto: per fortuna, nel caso di copia di file in un file manager è solo un elenco di nomi di file assoluti, ciascuno su una nuova riga, qualcosa che è facile da generare usando il findcomando:

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

(almeno questo funziona per me in KDE). Ora puoi avvolgere in un piccolo script che puoi chiamare, per esempio cb:

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

poi lo metti dentro ~/bin, imposta il bit eseguibile su di esso e lo usi in questo modo:

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

Bello no?


Bello, ma funziona solo per il testo e non è davvero il file, solo il testo. Supponiamo di avere un file jpg?
Strapakowsky,

Sì, sapevo questo effetto che se copi un file dal file manager se lo incolli in un'altra cartella, incolli il file, ma se incolli in un editor di testo ottieni il percorso del file.
Strapakowsky,

Nel caso di file binari (jpg ecc.) Tutto è molto più complicato. Qui ho posto una domanda ispirata alla tua - unix.stackexchange.com/questions/53503/… - leggi gli "atomi target" e roba del genere
Sergey,

1
Ho sentito che xclip supporta anche la copia di file con xclip-copyfilee xclip-pastefile. Non l'ho usato davvero, ma potrebbe essere una soluzione.
Gladen,

Wow, @Gladen, penso che devi pubblicarlo come risposta separata. Anche se funziona quando si utilizza xclip-copyfilee quindi xclip-pastefile, ma non sembra funzionare con il file manager Ubuntu ...
Sergey

9

Ho sentito che xclip supporta anche la copia di file con xclip-copyfilee xclip-pastefile. Non l'ho usato davvero, ma potrebbe essere una soluzione.


Questo copia solo i nomi dei file, non il contenuto dei file. Dai un'occhiata agli esempi della pagina man, ovvero$ man xclip-copyfile
Craig

0

Mac OS ha pbcopyuna sintassi più semplice:

pbcopy < ~/.ssh/id_rsa.pub 

o

cat ~/.ssh/id_rsa.pub  | pbcopy

Per simulare pbcopysu Ubuntu con xclip(installato tramite sudo apt install xclip):

alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.