Auf Unix sind Symlinks Zeiger auf eine andere Datei. Nicht nur die Datei, sondern auch der Symlink hat eine ctime, mtime, .... Ich weiß, dass die Symlinks Zeit zugegriffen werden kann, wie ls
es anzeigt. Wenn ich einen der Ruby's File#ctime
, , ... verwende, erhalte ich immer das Attribut der Datei, auf die der Symlink zeigt, nicht des Symlinks. Wie kann ich diese Werte in Ruby lesen? Wenn das in Ruby nicht möglich ist, sag mir, wie man es in C macht. Ich würde in diesem Fall meine eigene c-Erweiterung schreiben.Wie ctime, mtime, ... einer symbolischen Verbindung?
6
A
Antwort
10
Verwenden Sie File#lstat()
. Beispiel:
# 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()
kann es in C tun; nicht sicher, ob es ein Ruby-Äquivalent gibt.
1
Es sind nicht nur die Attribute des Symlink und die Attribute des endgültigen Ziel, sondern auch, wenn der Symlink selbst auf eine andere Symlink, eine oder mehrere Zwischenschritte; Um alle Attribute zu erhalten, müssten Sie Lstats in einer Readlink-Schleife ausführen.
Verwandte Themen
- 1. Erstellen einer symbolischen Verbindung mit Java
- 2. Welche Open-Source-Repositorys oder Versionskontrollsysteme speichern die ursprünglichen mtime, ctime und atime der Dateien?
- 3. Erstellen einer relativen symbolischen Verbindung durch das os-Paket
- 4. Öffnen der symbolischen Verbindung im Kernel Windows8.1 +
- 5. Wie genau ist Ruby Mtime und Freunde?
- 6. softlinks aime und mtime modification
- 7. Warum sind die Berechtigungen einer symbolischen Verbindung standardmäßig auf all-permissive?
- 8. Verzögerung einer Ausgabe in C++ mit 'ctime' Bibliothek
- 9. Ersetze wichtigen symbolischen Link 'sicher'
- 10. Wie man die Matrixeingabe einer symbolischen Gleichung in Matlab zuordnet
- 11. Wie ändert man ctime in normale String-Darstellung?
- 12. Matlab symbolischen Ausdruck Fehler
- 13. Wie behandelt man einen symbolischen Link als Verzeichnis in Mercurial?
- 14. find - mtime vs mmin - Seltsame Ergebnisse
- 15. Wie man einen symbolischen Ausdruck in Matlab
- 16. Python Windows-Verzeichnis mtime: Wie Paketverzeichnis neue Datei zu erkennen?
- 17. Wie Dateien nach mtime sortiert und an grep übergeben werden?
- 18. Wie lösche ich einen symbolischen Link in Python?
- 19. Wie man ctime() benutzt, um verschiedene Zeitstempel zu drucken
- 20. Wie konvertiert man `ctime` in` datetime` in Python?
- 21. Löschen Sie alle unterbrochenen symbolischen Links mit einer Linie?
- 22. Grundstück einer Dirac-Funktion, die in symbolischen ist - MATLAB
- 23. Windows Verknüpfung zu einem symbolischen Link zu einer ausführbaren Datei
- 24. Löschen einer symbolischen Verknüpfung, wenn der ursprüngliche Ordner gelöscht wird
- 25. Datei Ctime verschiedene unter Perl 5 und Perl 6
- 26. Ermitteln, ob der Windows-Prozess die Berechtigung zum Erstellen der symbolischen Verbindung hat
- 27. Wie überprüfe ich den Status der Verbindung einer TFTP-Verbindung?
- 28. Holen Sie sich Datei Mtime mit Millisekunden Auflösung von Java
- 29. Starten Sie das richtige Python-Programm über den symbolischen Link
- 30. Python os.stat Rückkehr immer die gleiche mtime/size
Es scheint eine 'File.lstat' in Ruby zu geben, die das gleiche tut. – johannes