Cuando intento instalar Dropbox desde la línea de comandos, leo los comandos
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
que -significa aqui ¿Es el directorio anterior?
command-line
tar
Álgebra
fuente
fuente

f -. Esto podría hacer que encontrar la respuesta en las páginas de manual sea un poco más fácil.wgetytar. De esa forma, los respectivos desarrolladores pueden mejorar su documentación para que los futuros usuarios no vuelvan a tropezar con los mismos problemas. En otras palabras: ¡sé un héroe y haz del mundo un lugar mejor!$TAPEesté configurado.Respuestas:
Algunos comandos aceptan
-en lugar de un nombre de archivo, ya sea:-argumento pasadowgetdespués-O.-que pasó el argumentotardespuésxzf.El comando que mostró descarga un archivo con
wgety lo descomprimetar. Para lograr esto, la salida dewgetse canaliza (|) a la entrada detar. Esta es la razón por la quewgetescribe en la salida estándar en lugar de un archivo ytarlee desde la entrada estándar en lugar de un archivo.fuente
-. . Entonces, si-es un operando para una "opción de archivo" y tiene un significado especial, entonces debe ser el de stdin / stdout. El programa es gratuito para no tratarlo como un caso especial y simplemente buscar el archivo--)-especialmente en absoluto, tratándolo como un nombre de archivo literal. La única manera de ir en contra de la directriz es tratar-especialmente, pero con algún otro significado que los que sugiere la directriz.Es solo un nombre de archivo que muchos programas de Unix interpretan como "en lugar de abrir un archivo, leer
stdin(o escribirstdout)".Eso significa leer de la entrada que se transmite al programa; en su caso, esa es la salida de wget.
fuente
./-si realmente desea abrir un archivo llamado-.stdines un descriptor de archivo y-es el nombre que proporciona para usarlo. Sin embargo, no es un nombre de archivo desde la perspectiva del sistema operativo. Solo desde la perspectiva del usuario./dev/stdines solo un nombre de archivo de conveniencia ofrecido por alguna instalación de kernel. Por lo general, nofopen("/dev/stdin", "r")ocurre nada en ningún lugar cuando escribe un programa que elige usar stdin; simplemente continúe y use elextern FILE* stdinque le proporcionó su encabezado libc; por cierto, ese es el descriptor de archivo entero0.El
-argumento paratarespecifica que el archivo debe leerse enstdinlugar de un archivo. Del manual de GNU tar :Otros comandos tienen el mismo comportamiento, y está especificado por el estándar POSIX.1-2017 :
fuente