En los enlaces simbólicos de Unix están los punteros a otro archivo. No solo el archivo sino también el enlace simbólico tiene un ctime, mtime, .... Sé que se puede acceder al tiempo symlinks, como lo muestra ls
. Si uso uno de ruby's File#ctime
, File#mtime
, ..., siempre obtengo el atributo del archivo al que apunta el enlace simbólico, no del enlace simbólico. ¿Cómo puedo leer estos valores en ruby? Si esto no es posible en ruby, dígame cómo hacerlo en C. Escribiría mi propia extensión c en ese caso.Cómo acceder a ctime, mtime, ... de un enlace simbólico?
6
A
Respuesta
10
Use File#lstat()
. Ejemplo:
# This is a dummy symlink; there's no file named "foo".
ln -s foo bar
# Run irb.
irb(main):001:0> File.lstat("bar")
=> #<File::Stat dev=0x801, ino=90113, mode=0120777, nlink=1, uid=1000, gid=1000, rdev=0x0, size=3, blksize=4096, blocks=0, atime=2010-01-05 17:59:06 -0500, mtime=2010-01-05 17:59:05 -0500, ctime=2010-01-05 17:59:05 -0500>
# Get the mtime of the link.
irb(main):002:0> File.lstat("bar").mtime
=> 2010-01-05 17:59:05 -0500
1
lstat()
puede hacerlo en C; no estoy seguro de si hay un equivalente de Ruby.
1
hay no sólo los atributos del enlace simbólico y los atributos del objetivo final, sino también, si el enlace simbólico es en sí mismo a otro enlace simbólico, uno o más pasos intermedios; para obtener todos los atributos, necesitarías hacer lstats en un bucle readlink.
Cuestiones relacionadas
- 1. ¿Cómo puedo obtener el mtime de alta resolución para un enlace simbólico en Perl?
- 2. ctime, mtime, holding directory, windows, linux
- 3. ¿Cómo elimino un enlace simbólico?
- 4. .htaccess o enlace simbólico (enlace simbólico)
- 5. ¿Cómo puedo acceder mediante programación a la ruta de destino de un enlace simbólico de Windows?
- 6. Enlace simbólico a un gancho en git
- 7. ¿Tiene algún efecto secundario la creación de un enlace simbólico a otro enlace simbólico?
- 8. ¿Cómo crear un enlace simbólico con SCons?
- 9. ¿Cómo muevo un enlace simbólico relativo?
- 10. enlace gcc contra enlace simbólico
- 11. android: determinar un enlace simbólico
- 12. ¿Cómo eliminar un enlace simbólico en python?
- 13. Cómo comprobar si existe un enlace simbólico
- 14. Buscar el enlace simbólico
- 15. Detección de un enlace simbólico en Java
- 16. copia de Linux enlace simbólico
- 17. Homebrew enlace simbólico error
- 18. Modificando un enlace simbólico en python
- 19. Windows y ctime/st_ctime
- 20. Enlace simbólico en Windows XP
- 21. Obtenga campos attime, mtime, ctime con precisión de nanosegundo para el archivo (stat?)
- 22. Copiando un enlace simbólico en Python
- 23. ¿Cómo tratar un enlace simbólico como un directorio en Mercurial?
- 24. ¿Cómo obtengo el objetivo de un enlace simbólico?
- 25. Git: cometer un enlace simbólico a una carpeta
- 26. cómo cambiar la carpeta a enlace simbólico en svn
- 27. ¿Cómo puedo saber a qué apunta mi enlace simbólico?
- 28. Cómo hacer un enlace simbólico con cygwin en Windows 7
- 29. ¿Cómo creo un enlace simbólico en Windows Vista?
- 30. archivo de reglas de Debian crear un enlace simbólico
Parece que hay un 'File.lstat' en ruby, que hace lo mismo. – johannes