Eu tenho um arquivo na área de trabalho, o nome do arquivo é ded.html. Para copiar o arquivo, clico no arquivo e pressione cmd + c.
Agora, como eu faria a mesma coisa usando o terminal?
Eu tenho um arquivo na área de trabalho, o nome do arquivo é ded.html. Para copiar o arquivo, clico no arquivo e pressione cmd + c.
Agora, como eu faria a mesma coisa usando o terminal?
Respostas:
Se estou entendendo a pergunta corretamente, o que você procura é pbcopy
e pbpaste
.
Abra um terminal e faça:
$ cat ~/Desktop/ded.html | pbcopy
Agora esse arquivo está na área de transferência.
Para colocá-lo em outro lugar, ou seja, para colá-lo, faça:
$ pbpaste > ~/Documents/ded.html
Agora você deve ter uma cópia do ded.html em ~ / Documents.
cat ~/.emulator_console_auth_token | auth <read_content>
?
A resposta de Lri está indo na direção certa, mas tem algumas falhas: não há necessidade de usar o Finder ( the clipboard
faz parte do StandardAdditions OSAX), e fornecer um run
manipulador é uma maneira muito mais confiável de passar argumentos da linha de comando (desde 10.4). Fazer essas duas alterações simplifica bastante o "escape" que precisa ser feito para entrar no programa em um shell.
Aqui está a minha versão (envolvida em uma função shell - você pode colocá-la em (por exemplo) sua .bashrc
para disponibilizá-la em seus shells):
file-to-clipboard() {
osascript \
-e 'on run args' \
-e 'set the clipboard to POSIX file (first item of args)' \
-e end \
"$@"
}
file-to-clipboard ~/Desktop/ded.html
Um arquivo que foi colocado na área de transferência com esse script pode ser colado no Finder para copiar o arquivo para outra pasta.
o osascript também pode ser usado como um intérprete de hash-bang (desde 10.5). Coloque isso em um arquivo (por exemplo file-to-clipboard
)
#!/usr/bin/osascript
on run args
set the clipboard to POSIX file (first item of args)
end
Torne o arquivo executável ( chmod +x /path/to/where/ever/you/put/file-to-clipboard
). Em seguida, execute-o assim:
/path/to/where/ever/you/put/file-to-clipboard ~/Desktop/ded.html
Se ele estiver armazenado em um diretório no PATH, você poderá omitir o caminho para o arquivo "script".
set the clipboard to {one,two}
(embora outro programa AppleScript possa extrair a lista com sucesso). Os comandos da área de transferência do StandardAdditions podem estar limitados a itens únicos.
Não há como alcançar o que você está tentando fazer usando a linha de comando. Enquanto a Apple oferece as ferramentas pbcopy
e pbpaste
para permitir a cópia básica de texto, você não pode usá-las para copiar um arquivo no sentido que procura.
Sem entrar em muitos detalhes técnicos, quando você 'copia' um arquivo no Finder usando ⌘C, na verdade você não está copiando o arquivo, apenas fazendo uma referência ao arquivo na área de transferência e marcando-o como uma referência de arquivo. Quando um aplicativo recebe essa referência quando você cola, ele tem a responsabilidade de organizar as coisas, descobrir o que você colou e, finalmente, trabalhar com o arquivo como achar melhor. Essencialmente, quando você copia um arquivo no Finder, ele salva o caminho do arquivo de uma certa maneira para uma determinada área de transferência e, quando você cola, recebe esse caminho e sabe criar um novo arquivo usando o conteúdo do antigo (copie um arquivo para a área de transferência, exclua-o, tente colá-lo em outro lugar e veja o que acontece, por exemplo).
Nesse sentido de copiar e colar, as ferramentas disponíveis não são suficientes para fazer o que você precisa. Como boehj sugeriu, você pode tentar copiar o conteúdo do arquivo antigo para um novo, mas isso só funcionará bem para arquivos de texto. Todos os arquivos binários que você obtiver serão corrompidos (tente fazer isso com uma imagem - ela ficará corrompida).
A linha de comando tradicional falhará com você dessa maneira, mas você pode dar uma olhada se quiser fazer isso no AppleScript e, em seguida, chamar isso através da linha de comando com osascript
.
pbcopy
e pbpaste
funcione com um arquivo .html, é apenas porque é apenas um arquivo de texto.
pbcopy -help
, terá uma linha que não vale a pena NSLog()
repetir 'pbcopy -help'
. Ela ajuda a ser um programador para entender isso, e é por isso que eu senti a necessidade de dialogar.
A função abaixo funciona apenas com um único arquivo e não com vários arquivos. Requer o GNU readlink
que você pode instalar executando brew install findutils
.
copy(){ osascript -e{'on run{a}','set the clipboard to posix file a',end} "$(greadlink -f -- "$1")";}
Edit: Eu removi o tell app "Finder"
bloco.
Editar 2: revertido para uma versão que suporta caminhos relativos.
Para copiar um arquivo para um destino, use o cp
comando
cp /path/to/file /path/to/destination
Veja man cp
para mais informações.
Aqui está um script Shell / Bash simples. Basta colá-lo em seu .bashrc
arquivo (ou algo semelhante):
file-to-clipboard() {
if [ -z "$1" ]; then
echo "file path/name:"
read FILE
else
FILE="$1"
fi
pbcopy < "$FILE"
}
Com suporte de arquivo relativo:
clip_img() {
osascript -e 'on run argv' \
-e 'set currentDir to do shell script "pwd"' \
-e 'set the clipboard to (read POSIX file (POSIX path of (currentDir as text & (first item of argv) )) as JPEG picture)' \
-e 'end run' "/$1"
# osascript -e 'clipboard info'
}
execute clip_img path-to-file
para copiar a imagem para a área de transferência e path-to-file
pode ser relativo. O arquivo pode ser arquivos JPEG ou PNG.
Você pode usar o gato 'originfile'> 'destinationfile' em ambientes unix;
copiar arquivo de origem arquivo de destino no Windows.