¿Cuál es la diferencia entre ls >
y ls >>
? Necesito entender esto para mi computación GCSE pero no sé cuál es la diferencia.
command-line
Helen Schofield
fuente
fuente
man bash
).Respuestas:
>
&>>
son operadores de redireccionamiento; transfieren la salida de algo, en este casols
, a otro lugar. Si esta salida va a un archivo,>
truncará el archivo, es decir, eliminará cualquier contenido anterior, mientras que>>
agregará nuevos datos al final del archivo, conservando el contenido anterior. Esto funcionará con cualquier entrada, por lo queecho
&cat
, por ejemplo, también se puede usar de esta manera.También es de interés el
|
operador, que pasa los datos a otra aplicación, por lo quels | cat -n
le dará una lista numerada de líneas.Tuberías es el término relevante.
fuente
strace
salida parabash -c 'echo a > blah'
:, poropen("blah, O_WRONLY|O_CREAT|O_TRUNC, 0666)
lo que truncar sería el término correcto.>>
para escribir en un archivo (por ejemplo, un registro) también tiene el lado bueno El efecto de no tener caracteres "Nul" aparece al comienzo del archivo saif si el archivo se trunca mientras el proceso todavía escribe en él. (ej .: durante la rotación del archivo de registro). Debido a que "foo> file" no busca, no nota el cambio de tamaño y aún apunta más allá del comienzo, y el sistema operativo se llena con Nul.foo >>file
busca y por lo tanto apunta a la nueva posición (el comienzo).Los símbolos
>
y>>
se utilizan para redirigir la salida a un archivo.Ambos crearán el archivo si el archivo no existe. Si el archivo ya existe,
>
sobrescribirá el archivo donde>>
agregará los datos al archivo.Entonces
ls > myfile
creará un documento llamadomyfile
si no existe. Simyfile
ya está presente y contiene algunos datos, se sobrescribirá con los nuevos datos que le pase.Mientras
ls >> myfile
que creará un archivo si no existe y le escribirá datos. Si el archivo existe con algunos datos, entonces se agregan nuevos datos a su fin.fuente
SI usa un solo>, sobrescribirá el archivo si ya existe. Ten mucho cuidado cuando uses este.
Si usa dos >>, simplemente se agregará (en otras palabras, comenzará a escribir al final del archivo) si ya existe. De lo contrario, crea un nuevo archivo si no existe.
fuente