Eu acho que você deve fazer algo como os aplicativos GUI. Minha idéia para fazer isso é escrever duas funções para Copy and Paste, onde Copy grava o caminho dos arquivos a serem copiados em um arquivo temporário e Paste lê esses caminhos e simplesmente chama o cpcomando. Minha implementação (para ser .bashrcarquivada) é como abaixo:
function Copy {
touch ~/.clipfiles
for i in "$@"; do
if [[ $i != /* ]]; then i=$PWD/$i; fi
i=${i//\\/\\\\}; i=${i//$'\n'/$'\\\n'}
printf '%s\n' "$i"
done >> ~/.clipfiles
}
function Paste {
while IFS= read src; do
cp -Rdp "$src" .
done < ~/.clipfiles
rm ~/.clipfiles
}
Scripts melhores poderiam ser escritos para implementar essa idéia, testei a minha própria e funciona muito bem para arquivos e pastas (não sei como xclippoderia funcionar para copiar pastas !!)
Por exemplo:
/usr/local/dir1# Copy a.txt *.cpp
/usr/local/dir1# cd /usr/local/dir2
/usr/local/dir2# Paste
/usr/local/dir1# Copy *.h *.cpp b.txt subdir1
/usr/local/dir1# cd /usr/local/dir2
/usr/local/dir2# Paste
/usr/local/dir1# Copy a.txt b.txt
/usr/local/dir1# cd /usr/local/dir2
/usr/local/dir2# Copy c.txt d.txt
/usr/local/dir2# cd /usr/local/dir3
/usr/local/dir3# Paste
Eu gosto desta ideia. E com pequenas modificações, você também pode implementar uma função de "corte".
Pablo Venturino
@Gilles Poderia explicar por que você substituiu echocom printf?
Meysam
@Meysam Para trabalhar mesmo com menos shopt -s xpg_echo.
Gilles 'SO- stop be evil'
1
@Meysam printfé portátil e seguro, enquanto echonão é. O wiki do Wooledge menciona isso brevemente.
Jw013
10
Eu sugiro xclip. eu uso o tempo todo para isso. mas você não precisa de um script. basta usar funções.
não vejo necessidade de usar esses scripts, em particular, porque se você estiver fazendo o que eu acho que você está fazendo, você encontrará os scripts já mencionados (no útil blog linux tidbits) irritante porque eles solicitam a entrada sempre que possível , apenas usá-los, ao contrário da filosofia unix.
Sugiro apenas escrever algumas funções no seu .bashrc:
Para usá-los, você precisa apt-get install xclip(Debian, Ubuntu, Linux Mint, etc.) ou zypper in xclip(openSUSE, outros sistemas baseados em .rpm) ou algo equivalente. o programa deve estar disponível em qualquer sistema que você estiver usando.
Você pode usar o xclipcomando para isso. Você pode baixar scripts bash de este link e colocar apelidos para bash cp2clipe bash clippasteem seu .bashrcarquivo.
eu quis dizer manter os arquivos no diretório inicial e colocar dois apelidos no seu .bashrc apelido cp2clip = 'bash / home / <nome do usuário> /cp2clip.sh' e clippaste = 'bash / home / <nome do usuário> /clippaste.sh' você pode usá-los em qualquer lugar. Para ler mais sobre aliases, você pode ver man aliasou linfo.org/alias.html
echo
comprintf
?shopt -s xpg_echo
.printf
é portátil e seguro, enquantoecho
não é. O wiki do Wooledge menciona isso brevemente.Eu sugiro xclip. eu uso o tempo todo para isso. mas você não precisa de um script. basta usar funções.
não vejo necessidade de usar esses scripts, em particular, porque se você estiver fazendo o que eu acho que você está fazendo, você encontrará os scripts já mencionados (no útil blog linux tidbits) irritante porque eles solicitam a entrada sempre que possível , apenas usá-los, ao contrário da filosofia unix.
Sugiro apenas escrever algumas funções no seu
.bashrc
:Para usá-los, você precisa
apt-get install xclip
(Debian, Ubuntu, Linux Mint, etc.) ouzypper in xclip
(openSUSE, outros sistemas baseados em .rpm) ou algo equivalente. o programa deve estar disponível em qualquer sistema que você estiver usando.fonte
Você pode usar o
xclip
comando para isso. Você pode baixar scripts bash de este link e colocar apelidos parabash cp2clip
ebash clippaste
em seu.bashrc
arquivo.fonte
man alias
ou linfo.org/alias.html