Discussion:
unlink me borro un archivo???
Pablo Fredrikson
2010-06-07 14:58:25 UTC
Permalink
Que tal, sin querer le hice unlink a un archivo (que no era un enlace
simbolico) Y ME LO BORRO!?!?!
--
Pablo Fredrikson
CruX
2010-06-07 15:05:26 UTC
Permalink
Post by Pablo Fredrikson
Que tal, sin querer le hice unlink a un archivo (que no era un enlace
simbolico) Y ME LO BORRO!?!?!
man unlink:
<snip>
unlink - call the unlink function to remove the specified file
</snip>

man 2 unlink:
<snip>
NAME
unlink - delete a name and possibly the file it refers to

SYNOPSIS
#include <unistd.h>

int unlink(const char *pathname);

DESCRIPTION
unlink() deletes a name from the file system. If that name was
the last link to a file and no processes have the file open the file is
deleted and the space it was using is made available for reuse.

If the name was the last link to a file but any processes still
have the file open the file will remain in existence until the last file
descriptor referring to it is closed.

If the name referred to a symbolic link the link is removed.

If the name referred to a socket, fifo or device the name for it
is removed but processes which have the object open may continue to use
it.
</snip>

Qué esperabas que hiciera unlink? Borrar un link simbólico se hace con
rm.
--
CruX (aka Sebastián Cruz)
Jabber: crux @ lugmen . org . ar
Blog: http://blog.macumba.homelinux.org
GPG FP: 5D35 54C4 ABA7 DED9 133F 5272 04F7 13E3 B03D 64C4
Pablo Fredrikson
2010-06-07 15:12:17 UTC
Permalink
Post by CruX
Post by Pablo Fredrikson
Que tal, sin querer le hice unlink a un archivo (que no era un enlace
simbolico) Y ME LO BORRO!?!?!
<snip>
unlink - call the unlink function to remove the specified file
</snip>
<snip>
NAME
      unlink - delete a name and possibly the file it refers to
SYNOPSIS
      #include <unistd.h>
      int unlink(const char *pathname);
DESCRIPTION
      unlink()  deletes a name from the file system.  If that name was
the last link to a file and no processes have the file open the file is
deleted and the space it was using is made available for reuse.
      If the name was the last link to a file but any processes still
have the file open the file will remain in existence until the last file
descriptor referring to it is closed.
      If the name referred to a symbolic link the link is removed.
      If the name referred to a socket, fifo or device the name for it
is removed but processes which have the object open may continue to use
it.
</snip>
Qué esperabas que hiciera unlink? Borrar un link simbólico se hace con
rm.
--
CruX (aka Sebastián Cruz)
Blog: http://blog.macumba.homelinux.org
GPG FP: 5D35 54C4 ABA7 DED9 133F 5272 04F7 13E3 B03D 64C4
Esperaba que me dijera

unlink no puede borrar el archivo ya que no es un enlace simbolico


Toda mi vida use unlink para borrar enlaces simbolicos y rm para
borrar archivos, pensaba que unlink no me iba a dejar borrar un
archivo normal

Bueno my bad :( ya que estamos, estoy buscando como recuperarlo, pero
no tiene mucho sentido ya que no era importante, pero bueno, quería
comentarlo para aquel que no sepa :p

Gracias
--
Pablo Fredrikson
Boris Quiroz
2010-06-07 16:33:44 UTC
Permalink
Post by Pablo Fredrikson
Post by CruX
Post by Pablo Fredrikson
Que tal, sin querer le hice unlink a un archivo (que no era un enlace
simbolico) Y ME LO BORRO!?!?!
<snip>
unlink - call the unlink function to remove the specified file
</snip>
<snip>
NAME
      unlink - delete a name and possibly the file it refers to
SYNOPSIS
      #include <unistd.h>
      int unlink(const char *pathname);
DESCRIPTION
      unlink()  deletes a name from the file system.  If that name was
the last link to a file and no processes have the file open the file is
deleted and the space it was using is made available for reuse.
      If the name was the last link to a file but any processes still
have the file open the file will remain in existence until the last file
descriptor referring to it is closed.
      If the name referred to a symbolic link the link is removed.
      If the name referred to a socket, fifo or device the name for it
is removed but processes which have the object open may continue to use
it.
</snip>
Qué esperabas que hiciera unlink? Borrar un link simbólico se hace con
rm.
--
CruX (aka Sebastián Cruz)
Blog: http://blog.macumba.homelinux.org
GPG FP: 5D35 54C4 ABA7 DED9 133F 5272 04F7 13E3 B03D 64C4
Esperaba que me dijera
unlink no puede borrar el archivo ya que no es un enlace simbolico
Eso es Windows Vista/7 style...
Post by Pablo Fredrikson
Toda mi vida use unlink para borrar enlaces simbolicos y rm para
borrar archivos, pensaba que unlink no me iba a dejar borrar un
archivo normal
Bueno my bad :( ya que estamos, estoy buscando como recuperarlo, pero
no tiene mucho sentido ya que no era importante, pero bueno, quería
comentarlo para aquel que no sepa :p
Gracias
--
Pablo Fredrikson
--
http://boris.insert-coin.org
AADB 52A9 8C6B 1C73 D0C4 570E 952C 2DC1 D1D0 A4E7
gpg --keyserver pgp.mit.edu --recv-key D1D0A4E7
Pablo Fredrikson
2010-06-07 18:22:26 UTC
Permalink
Post by Boris Quiroz
Post by Pablo Fredrikson
Esperaba que me dijera
unlink no puede borrar el archivo ya que no es un enlace simbolico
Eso es Windows Vista/7 style...
--
http://boris.insert-coin.org
AADB 52A9 8C6B 1C73 D0C4  570E 952C 2DC1 D1D0 A4E7
gpg --keyserver pgp.mit.edu --recv-key D1D0A4E7
Gracias por tu aporte Boris, en estos momentos estoy usando
ext3grep[1], muy interesante, estoy probando a ver si lo puedo
recuperar,

Si me funciona lo comentaré

[1] http://www.xs4all.nl/%7Ecarlo17/howto/undelete_ext3.html
--
Pablo Fredrikson
Edgardo
2010-06-07 18:28:39 UTC
Permalink
El 7 de junio de 2010 15:22, Pablo Fredrikson
Post by Pablo Fredrikson
Post by Boris Quiroz
Post by Pablo Fredrikson
Esperaba que me dijera
unlink no puede borrar el archivo ya que no es un enlace simbolico
Eso es Windows Vista/7 style...
--
http://boris.insert-coin.org
AADB 52A9 8C6B 1C73 D0C4 570E 952C 2DC1 D1D0 A4E7
gpg --keyserver pgp.mit.edu --recv-key D1D0A4E7
Gracias por tu aporte Boris, en estos momentos estoy usando
ext3grep[1], muy interesante, estoy probando a ver si lo puedo
recuperar,
Si me funciona lo comentaré
[1] http://www.xs4all.nl/%7Ecarlo17/howto/undelete_ext3.html
Yo probé y no pude jajaja es muy bueno el filesystem. Igual te deseo mucha
suerte.
--
Edgardo - AE03 F3C4 43DE 1A95 2834 D193 82B2 1018 5F81 3708
diego source
2010-06-10 18:09:35 UTC
Permalink
Muy Interesante!

El 7 de junio de 2010 15:22, Pablo Fredrikson
Post by Pablo Fredrikson
Si me funciona lo comentaré
[1] http://www.xs4all.nl/%7Ecarlo17/howto/undelete_ext3.html
--
Pablo Fredrikson
Samuel Isuani
2010-06-07 18:34:46 UTC
Permalink
On Mon, Jun 07, 2010 at 12:33:44PM -0400, Boris Quiroz wrote:
{..}
Post by Boris Quiroz
Post by Pablo Fredrikson
Esperaba que me dijera
unlink no puede borrar el archivo ya que no es un enlace simbolico
Eso es Windows Vista/7 style...
No, eso es estilo de cualquier buen programa que devuelve el error
correspondiente. Proba rm directorio.
--
mito
Annali len
Andres Morales
2010-06-08 11:10:44 UTC
Permalink
Post by Samuel Isuani
{..}
Post by Boris Quiroz
Post by Pablo Fredrikson
Esperaba que me dijera
unlink no puede borrar el archivo ya que no es un enlace simbolico
Eso es Windows Vista/7 style...
No, eso es estilo de cualquier buen programa que devuelve el error
correspondiente. Proba rm directorio.
--
mito
Annali len
Estoy de acuerdo, aunque obviamente no va a devolver ningún tipo de error si
es la tarea que tiene que hacer.

Andrés
Emiliano Castagnari
2010-06-07 15:26:09 UTC
Permalink
Post by CruX
Qué esperabas que hiciera unlink? Borrar un link simbólico se hace con
rm.
Mas específicamente, un inodo tiene un numero que representa la
cantidad de hardlinks que tiene un archivo. En general este numero es
simplemente uno, pero cuando uno hace un hardlink ('ln <src> <dst>')
se incrementa este numero, y <dst> tiene el mismo numero de inodo que
<src> (o sea, es el mismo archivo). Al ejecutar unlink, lo que haces
es reducir el numero de hardlinks, y finalmente cuando ese numero
llega a 0, el archivo se borra.

Podes usar tanto uno como otro (rm o unlink), la diferencia es que
rm es userfriendly porque acepta switches que pueden evitar que te
mandes una macana, mientras que unlink es una llamada a sistema y su
correspondiente wrapper para usar el comando no acepta switches, de
manera que podes borrar archivos como "-archivo" o "--opcion".

Saludos
--
# Emiliano Castagnari - (aka Torian)
--=========================--
Alejandro Vargas
2010-06-07 15:33:28 UTC
Permalink
Post by Pablo Fredrikson
Que tal, sin querer le hice unlink a un archivo (que no era un enlace
simbolico) Y ME LO BORRO!?!?!
Claro. La función del sistema para borrar archivos se llama unlink. El
comando rm llama a esa función y acepta un montón de opciones útiles,
pero el comando unlink hace un llamado directo a la función. O sea que
unlink borra archivos y no sólo links como creías.
Loading...