So mounten Sie eine Partition mit Leerzeichen im Pfad


9

Ich habe eine Partition erstellt und wollte diese Partition in dieses Verzeichnis einbinden /home/max/VirtualBox VMs

Ich habe diese Zeile in fstab geschrieben:

/ dev / sda4 / home / max / VirtualBox \ VMs ext4 ist standardmäßig 0 0

aber es gibt diesen Fehler

[mntent]: Zeile 16 in / etc / fstab ist schlecht

Ich weiß, dass ich diesen Fehler erhalte, weil zwischen 'virtualBox VMs' Platz ist.

Ist es möglich, in dieses Verzeichnis zu mounten?

[max @ localhost VirtualBox-VMs] $ pwd
/ home / max / VirtualBox-VMs

Sind Sie sicher erstellt dir genau wie inficared in fstab. Ich sah einen Tippfehler in Frage
— Yurij73

Ja, es wurde erstellt
— max

Antworten:


2

Verwenden Sie Anführungszeichen.

/ dev / sda4 "/ home / max / VirtualBox VMs" ext4 ist standardmäßig 0 0


1
Es funktioniert nicht Ich habe all diese Dinge ausprobiert "/ home / max / VirtualBox VMs", /home/max/VirtualBox\ VMs/ home / max / "VirtualBox VMs" nichts funktioniert.
— Max

3
Sie können versuchen, \ 040 anstelle der Leerzeichen zu verwenden. nach dem Internet funktioniert das fantastisch; Ich habe es gerade auf Arch 3.7 Kernel ausprobiert und es will jedoch nicht für mich funktionieren.
— Justin

großartig ... es funktioniert jetzt gut ... aber was bedeutet \ 040?
— Max

1
Das \ ist ein Escape-Zeichen und 040 ist der ASCII-Code für Leerzeichen. Jetzt möchte ich wissen, warum es bei mir nicht funktioniert: /
— Justin

1
Das ist interessant. Sogar das ArchWiki sagt in fstab # Dateipfad Leerzeichen , \040die funktionieren sollten. Funktioniert der Anführungszeichenansatz für Sie?
— Dennis

17

fstab hat eine eigene Syntax. Um Leerzeichen als Teil eines Verzeichnisnamens zu verwenden, müssen Sie den Codepunkt als nullgefüllte dreistellige Oktalzahl angeben , der ein Backslash (Escape-Zeichen) vorangestellt ist.

In ASCII ist der Codepunkt des Leerzeichens 32 oder 40 in Oktal, sodass Sie Folgendes verwenden können:

/dev/sda4               /home/max/VirtualBox\040VMs  ext4    defaults        0 0

Beachten Sie, dass Codepunkte zwar auch für andere Zeichen unterstützt werden, die Unterstützung jedoch eher unzuverlässig ist. Auf meinem Computer können Sie schreiben \127statt W, aber nicht \070 statt 8...


0

In der Frage sagen Sie, der Name ist

/ home / max / VirtualVM Box

zeigen Sie in Ihrem Beispiel

/ home / max / VirtualBox \ VM

Es sollte sein

/ home / max / VirtualVM \ Box

gleich sein. Es sollte auch Anführungszeichen enthalten.


Entschuldigung, das war aus Versehen, ich habe meine Frage aktualisiert
— max

0

Ich konvertiere den gesamten Pfad in einen Codepunkt mit einer Bash-Funktion:

fstab_path(){
    local path=$1
    local s=
    local c=
    for i in $(seq 1 ${#path})
    do
        c=${path:i-1:1}
        s="$s"$(printf '\\0%o' "'$c")
    done
    echo "$s"  >/dev/stdout
}

path="path with spaces tabs etc.."
fpath=$(fstab_path "$path")
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.