linux – ¿Cuál es la diferencia entre unlink y rm?

Pregunta:

¿Desvincular es más rápido que rm?

Respuesta:

Ambos son un contenedor de la misma función fundamental que es una llamada al sistema unlink() .

Sopesar las diferencias entre las utilidades del espacio de usuario.

rm(1) :

  • Mas opciones.
  • Más comentarios.
  • Comprobación de la cordura.
  • Un poco más lento para llamadas individuales como resultado de lo anterior.
  • Se puede llamar con varios argumentos al mismo tiempo.

unlink(1) :

  • Menos control de la cordura.
  • No se pueden eliminar directorios.
  • Incapaz de recurrir.
  • Solo puede tomar un argumento a la vez.
  • Un poco más reducido para llamadas individuales debido a su simplicidad.
  • Más lento en comparación con dar múltiples argumentos a rm(1) .

Podrías demostrar la diferencia con:

$ touch $(seq 1 100)
$ unlink $(seq 1 100)
unlink: extra operand `2'

$ touch $(seq 1 100)
$ time rm $(seq 1 100)

real    0m0.048s
user    0m0.004s
sys     0m0.008s

$ touch $(seq 1 100)
$ time for i in $(seq 1 100); do rm $i; done

real    0m0.207s
user    0m0.044s
sys     0m0.112s

$ touch $(seq 1 100)
$ time for i in $(seq 1 100); do unlink $i; done

real    0m0.167s
user    0m0.048s
sys     0m0.120s

Sin embargo, si estamos hablando de una llamada no adulterada a la función de unlink(2) del sistema unlink(2) , ahora me doy cuenta de que probablemente no sea lo que está considerando.

Puede realizar una unlink() sistema unlink() en directorios y archivos por igual. Pero si el directorio es padre de otros directorios y archivos, entonces el enlace a ese padre se eliminaría, pero los hijos quedarían colgando. Lo cual es menos que ideal.

Editar:

Lo siento, se aclaró la diferencia entre unlink(1) y unlink(2) . La semántica seguirá siendo diferente entre plataformas.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım