Darf das sein? Dateiname = Verzeichnisname

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
muekno
Beiträge: 12
Registriert: 08.02.2020 17:24:29

Darf das sein? Dateiname = Verzeichnisname

Beitrag von muekno » 08.02.2020 17:38:09

Sorry möglicherweise dumme Frage. Ich mache nun schon seit Jahren mit Linux, ok bin kein Profi aber kommen gut zurecht. Arbeite, da mitt ssh auf meine server meist in der commandline.

So nun wollte ich eine Datei verschieben, aus einem parallelen Verzeichnis in das aktuelle.
also "mv ../quellverzeichnis/dateiname ." so kenne ich das eigentlich, "." ist das aktuelle Verzeichnis
Die Datei ist weg, find findet sie nicht mehr.
ls -la bringt die Erleuchtung, es existiert neben den Verzeichnisverweisen ".." und "." noch eine Datei "."
die natürlich nicht ansprechbar ist, alle Zugriffe auf . sagen richtigerweise ist ein Verzeichnis.
Man bekommt das nur weg wenn man das Verzeichnis löscht.

Version Rasbian Buster (also im Prinzip Debian 10) mit den aktuellsten Patches.
Ich denke das ist ein Bug, oder kann mich einer der Spezialisten aufklären.

Danke

Rainer

JTH
Moderator
Beiträge: 3079
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Darf das sein? Dateiname = Verzeichnisname

Beitrag von JTH » 08.02.2020 17:55:44

Willkommen im Forum.

Meines Wissens kann man keine Dateien (oder auch Ordner) mit Namen . oder .. anlegen. Die haben ausschließlich die Bedeutung, die du beschrieben hast. Andernfalls lern ich hier dazu ;)

ls -la zeigt dir allerdings diese speziellen Einträge . und .. in einem Ordner mit an. Wenn du dir die Ausgabe von ls -la nochmal anguckst, wird da – wenn mich nicht alles täuscht – ein d am Anfang der Zeile stehen. Das zeigt an, dass es ein Ordner ist (eben der aktuelle bzw. übergeordnete).

ls -lA zeigt die speziellen beiden Einträge nicht mit an.

Wo deine Datei steckt, kann ich dir damit leider nicht direkt sagen. Bist du ganz sicher, dass du beim Verschieben im richtigen Zielordner warst?
Manchmal bekannt als Just (another) Terminal Hacker.

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Darf das sein? Dateiname = Verzeichnisname

Beitrag von cronoik » 08.02.2020 18:17:59

muekno hat geschrieben: ↑ zum Beitrag ↑
08.02.2020 17:38:09
".." und "." noch eine Datei "."
Kannst du das ls -al dieser 3 Zeilen mal bitte posten? Passt der Zeitstempel bzw. die Groesse eines der . mit deiner verschobenen Datei ungefaher ueberein? Ist der Dateiname vielleicht . und noch irgendein Zeichen?
JTH hat geschrieben: ↑ zum Beitrag ↑
08.02.2020 17:55:44
Willkommen im Forum.

Meines Wissens kann man keine Dateien (oder auch Ordner) mit Namen . oder .. anlegen. Die haben ausschließlich die Bedeutung, die du beschrieben hast. Andernfalls lern ich hier dazu ;)
Die Namen sind halt schon vergeben automatisch sobald ein Verzeichnis angelegt wird.
Hilf mit unser Wiki zu verbessern!

Benutzeravatar
MSfree
Beiträge: 11667
Registriert: 25.09.2007 19:59:30

Re: Darf das sein? Dateiname = Verzeichnisname

Beitrag von MSfree » 08.02.2020 19:43:48

muekno hat geschrieben: ↑ zum Beitrag ↑
08.02.2020 17:38:09
ls -la bringt die Erleuchtung, es existiert neben den Verzeichnisverweisen ".." und "." noch eine Datei "."
die natürlich nicht ansprechbar ist
Die Datei heißt mit Sicherheit nicht ".", sondern hat noch irgendwelche anderen Zeichen im Namen, z.B. ein Leerzeichen, also ". " oder ähnlich.

Benutzeravatar
Meillo
Moderator
Beiträge: 9261
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Darf das sein? Dateiname = Verzeichnisname

Beitrag von Meillo » 08.02.2020 19:49:25

Die Ausgabe von `ls' ist auf jeden Fall interessant. Wenn man genauer hinschauen will, sollte man `stat' auf die Dateien anwenden, das ist aussagekraeftiger.

Die Dateieintraege `.' und `..' werden automatisch vergeben. Man kann sie nicht manuell bearbeiten, weil man sonst den Verzeichnisbaum kaputt machen koennte.

Es kann in einem Verzeichnis keine zwei Dateien mit gleichem Namen geben. Bei den Eintraegen eines Verzeichnisses wird nicht nicht Dateityp unterschieden. Ein Verzeichnis ist letztlich nur eine Liste von Inode-Dateiname-Zuordnungen. Inodes duerfen mehrfach vorkommen, jeder Dateiname aber nur einmal. Soviel an theoretischem Unterbau.

Deine Situation ist jedenfalls seltsam ... darum aber auch interessant.

Relevant koennte auch das verwendete Filesystem sein. Das kannst du beispielsweise mit diesem Befehl im betreffenden Verzeichnis ausgeben lassen:

Code: Alles auswählen

awk "\$1 == \"`df . | awk 'NR==2{print $1}'`\"" /etc/mtab
(... geht vielleicht auch einfacher. ;-) )



EDIT:

@MSfree: Ja, damit hast du bestimmt das Raetsel geloest. :THX:

`stat' zeigt solchen Whitespace an, `ls' nicht direkt. Da muss man dann schon durch `od -c' pipen oder so, um ihn zu sehen.
Use ed once in a while!

Benutzeravatar
MSfree
Beiträge: 11667
Registriert: 25.09.2007 19:59:30

Re: Darf das sein? Dateiname = Verzeichnisname

Beitrag von MSfree » 08.02.2020 20:19:31

Meillo hat geschrieben: ↑ zum Beitrag ↑
08.02.2020 19:49:25
`stat' zeigt solchen Whitespace an, `ls' nicht direkt. Da muss man dann schon durch `od -c' pipen oder so, um ihn zu sehen.
ls kann zumindest HInweise auf zusätzlich Zeichen geben. Ich habe gerade eine Datei mit dem Namen ". " erzeugt und diese wird mit

Code: Alles auswählen

ls -lab
drwxr-xr-x 33 user  user     4096 Feb  8 20:15 .
-rw-r--r--  1 user  user        0 Feb  8 20:15 .\ 
drwxr-xr-x  4 root  root     4096 Apr 16  2019 ..
ausgegeben. Man beachte die "-b" Option von ls und den Dateinamen, der mit "\" dargestellt wird.

Benutzeravatar
Phineas
Beiträge: 355
Registriert: 20.06.2012 20:26:19

Re: Darf das sein? Dateiname = Verzeichnisname

Beitrag von Phineas » 09.02.2020 00:06:00

Möglicherweise sollte man den Dateinamen mittels find -print0 einem Tool wie od oder hexdump zum Fraß vorwerfen. Weiß der Teufel, wie viele Utf-Zeichen es gibt, die einem Punkt ähneln.

muekno
Beiträge: 12
Registriert: 08.02.2020 17:24:29

Re: Darf das sein? Dateiname = Verzeichnisname

Beitrag von muekno » 09.02.2020 07:35:10

Leider das Verzeichnis schon gelöscht, kann es auch heute nicht mehr nachvollziehen. Aber ich habe es gestern 2 mal erlebt, da ich nachdem die Datei beim ersten mal nicht da war den Vorgang, also Datei vom eine Host (MAC) mit SSH nochmal kopiert und dann innerhalb des anderen Host (PI) mit mv nochmal verschoben. Kann mir nicht vorstellen, da jedesmal ein Blank drangehängt zu haben. Nachdem die Datei wieder weg war bin ich dem erst wie oben beschrieben nachgegangen. Danke trotzdem für die Antworten.

Jetzt völlig verwirrt

Rainer

P.S. jedenfalls froh, dass es wieder geht

Benutzeravatar
Meillo
Moderator
Beiträge: 9261
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Darf das sein? Dateiname = Verzeichnisname

Beitrag von Meillo » 09.02.2020 09:55:35

muekno hat geschrieben: ↑ zum Beitrag ↑
09.02.2020 07:35:10
Leider das Verzeichnis schon gelöscht, kann es auch heute nicht mehr nachvollziehen. [...]

Jetzt völlig verwirrt
Tja, die Verwirrung und das ungeloeste Raetsel werden nun bleiben, denn ohne eine Reproduzier- und Testbarkeit haben wir nichts als zwei moegliche Erklaerungsansaetze (Whitespace und Punkt-aehnliches UTF8-Zeichen).

P.S. jedenfalls froh, dass es wieder geht
Besser als dass es wieder geht, ist es zu wissen, warum es davor nicht gegangen ist. ;-)


Trotzdem gut, dass dein System wieder normal ist.
Use ed once in a while!

Antworten