Tengo un archivo en el escritorio, el nombre del archivo es ded.html. Para copiar el archivo, hago clic en el archivo y presiono cmd + c.
Ahora, ¿cómo haría lo mismo con el terminal?
Tengo un archivo en el escritorio, el nombre del archivo es ded.html. Para copiar el archivo, hago clic en el archivo y presiono cmd + c.
Ahora, ¿cómo haría lo mismo con el terminal?
Si entiendo bien la pregunta, lo que estás buscando es pbcopy
y pbpaste
.
Abre una terminal y haz:
$ cat ~/Desktop/ded.html | pbcopy
Ahora ese archivo está en el portapapeles.
Para ponerlo en otro lugar, es decir, para pegarlo, haz:
$ pbpaste > ~/Documents/ded.html
Ahora debería tener una copia de ded.html en ~ / Documentos.
La respuesta de Lri es Dirigido en la dirección correcta, pero tiene un par de fallas: no hay necesidad de utilizar Finder ( the clipboard
es parte de StandardAdditions OSAX), y le da un run
handler es una forma mucho más confiable de pasar argumentos desde la línea de comandos (desde 10.4). La realización de estos dos cambios simplifica en gran medida el "escape" que se debe hacer para ingresar al programa en un shell.
Aquí está mi versión (envuelta en una función de shell: puede poner esto en (por ejemplo) su .bashrc
para que esté disponible en sus 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
Un archivo que se ha colocado en el portapapeles con este script se puede pegar en Finder para copiar el archivo en otra carpeta.
osascript también se puede usar como un intérprete de hash-bang (desde la 10.5). Pon esto en un archivo (por ejemplo, file-to-clipboard
)
#!/usr/bin/osascript
on run args
set the clipboard to POSIX file (first item of args)
end
Haz el archivo ejecutable ( chmod +x /path/to/where/ever/you/put/file-to-clipboard
). Entonces ejecútalo así:
/path/to/where/ever/you/put/file-to-clipboard ~/Desktop/ded.html
Si está almacenado en un directorio en la RUTA, puede omitir la ruta al archivo del "script".
No hay forma de lograr lo que está tratando de hacer usando la línea de comandos. Si bien Apple ofrece las herramientas pbcopy
y pbpaste
para permitir la copia básica de texto, no puedes usar estas herramientas para copiar un archivo en el sentido que estás buscando.
Sin entrar en demasiados detalles técnicos, cuando 'copia' un archivo en el Finder usando ⌘ <
En este sentido de copiar y pegar, las herramientas disponibles no son suficientes para hacer lo que necesita. Como sugirió boehj, puede intentar copiar el contenido del archivo antiguo en uno nuevo, pero esto solo funcionará bien para archivos de texto. Todos los archivos binarios que obtenga se corromperán (intente hacer esto con una imagen, se corromperá).
La línea de comando tradicional te fallará de esta manera, pero puedes echarle un vistazo si quieres hacer esto en AppleScript, luego invocarlo a través de la línea de comando con osascript
.
Editar: esta secuencia de comandos ahora usa un controlador de ejecución y no se basa en el Finder. También agregué un truco para que funcione con rutas relativas.
copy() {
osascript - "$@" <<'END' 2> /dev/null
on run {a}
set the clipboard to POSIX file (POSIX path of ((POSIX file a) as alias))
end
END
}
No conozco ninguna forma de copiar varios archivos .
Cuando una ruta relativa se convierte en un alias, hay una advertencia como CFURLGetFSRef was passed this URL which has no scheme
en 10.8. Solo se puede ignorar, por lo que el script redirige STDERR.
Para copiar un archivo a un destino, use el comando cp
.
cp /path/to/file /path/to/destination
Consulte man cp
para obtener más información.
Al ejecutar el comando pbcopy < filename
en la Terminal, se copia el contenido del archivo denominado filename
.
Aquí hay un simple script Shell / Bash. Solo péguelo en su archivo .bashrc
(o similar):
file-to-clipboard() {
if [ -z "$1" ]; then
echo "file path/name:"
read FILE
else
FILE="$1"
fi
pbcopy < "$FILE"
}
Puedes usar cat 'originfile' > 'destinationfile' en entornos unix;
copie el archivo de origen del archivo de origen en windows.