Ich war vor kurzem in einer misslichen Lage, in der ich mich in einem Ordner befand, und ich wollte cd
in einen Unterverzeichnisordner. Es gab nur einen Ordner in diesem Ordner und es war ein sehr langer Name.
Home (I am here)
|
|
--> /reallylongnamefolder
Gibt es eine Möglichkeit, in diesen Ordner zu wechseln, anstatt Folgendes einzugeben:
cd reallylongnamefolder
command-line
Arian Faurtosh
quelle
quelle
cd */
odercd rea*/
wenn Sie nicht sicher sind, ob es immer nur ein Unterverzeichnis gibt (wenn Sie bash verwenden, können Sie dies auchcd rea[TAB]
in anderen Shells tun, aber die Art und Weise, den Namen zu erweitern, kann variieren). Wenn "/ reallylongnamefolder" ein absoluter Pfad ist, dasselbe, aber mit "/" vor, zum Beispiel:cd /rea*/
Antworten:
Ich würde entweder raten, die ersten paar Buchstaben einzugeben und zu drücken tab. Bash hat eine Autovervollständigungsfunktion, die wirklich nützlich ist. Befindet sich nur das Verzeichnis im aktuellen Pfad, wird durch Drücken von tabdas gesamte Verzeichnis gefüllt.
Durch zweimaliges Eingeben
cd
und Drücken tabwerden alle Optionen im aktuellen Verzeichnis angezeigt.tab ist in der Regel sehr nützlich, da Sie auf fast alle ausführbaren Dateien mit ein oder zwei Tastendrücken zugreifen können.
cd *
Wie oben vorgeschlagen, funktioniert dies nur, wenn sich das Verzeichnis an erster Stelle in der Liste befindet und nicht ausgeblendet ist. Befindet sich eine Datei in alphabetischer Reihenfolge vor Ihrem Verzeichniscd
, ändert dies Ihr Verzeichnis überhaupt nicht.quelle
cd <tab>
Wird klug genug sein.Ich glaube, ich habe es tatsächlich herausgefunden
Aber ich habe es nicht getestet, wenn es mehrere Dateien und einen Ordner gibt!
Wie @Rinzwind in den Kommentaren erwähnt!
Angenommen, Sie haben drei lange Ordner:
Wenn Sie den ersten Buchstaben der Datei tabeingeben, wird der Dateiname automatisch vervollständigt. VERRÜCKTES ZEUG!
Im obigen Beispiel können t tabSie also Folgendes eingeben : und es wird so viel wie möglich automatisch vervollständigt:
cd thisislongfolder
( Geben Sie dann die Zahl selbst ein).Oder du kannst es tun,
cd t*1
würde dich mitnehmenthisislongfolder1
Danke Rinzwind!
quelle
cd r*r
und hoffe, es ist der einzige Ordner, der mit R. beginnt und endetcd */
könnte den Trick machencd *
scheitert wahrscheinlich öfter als es gelingt.ls -d */
listet die Verzeichnisse auf,head -n 1
gibt das erste in dieser Liste an.quelle
cd
in das erste Verzeichnis geschrieben werden muss, können Sie keine Tabulatoren erstellen .Ich habe ein nettes Setup dafür, mit dem ich nicht nur ~ / somereallylongfoldername cd, sondern auch cd dorthin, selbst wenn ich mich im / -Ordner befinde
Das erste, was ich benutze, ist zsh mit oh-my-zsh. Dadurch können Sie auch CDs erstellen, ohne sich um die Groß- und Kleinschreibung Gedanken machen zu müssen oder sogar ohne eine CD einzugeben
öffne und bearbeite deine .zshrc, die sich in deinem Home-Ordner befindet und nicht versteckt ist
nano ~ / .zshrc
Fügen Sie dann die folgende Zeile am Ende der Datei hinzu
export CDPATH=$CDPATH:/:/home/$USER/:/media/$USER/
Wenn Sie mein Thema mögen , können Sie auch die Zeile
#ZSH_THEME="robbyrussell"
zuZSH_THEME="pygmalion"
Speichern und schließen Sie die Datei und starten Sie sie neu. Schließe die Shell und öffne sie erneut oder öffne einfach eine neue Registerkarte und probiere sie aus
nicht können Sie die Tabulatortaste verwenden, um Namen zu vervollständigen, und in ZSH müssen Sie nicht einmal die richtige Groß- / Kleinschreibung haben, Sie können docu eingeben und die Tabulatortaste drücken und es wird in ~ / Documents umgewandelt
quelle
Sie können das Verzeichnis anhand der Inode-Nummer ändern.
Zuerst finden wir die Inode mit
ls -il
.dann
quelle
Wenn Sie dies in einem Skript tun oder Verzeichnisse mit nicht entschlüsselbaren Namen unterstützen müssen:
Es funktioniert, wenn sich Dateien im Verzeichnis befinden, unabhängig von ihrer Sortierreihenfolge in Bezug auf Verzeichnisse.
Es funktioniert für versteckte Verzeichnisse, wenn dies
cd */
fehlschlägt.Es funktioniert, wenn der Name im aktuellen Gebietsschema nicht darstellbar ist, wenn
ls
nur??
anstelle eines Namens gedruckt wird .quelle
Erweitere die Antwort von Ass:
um den 1. Ordner in einem Verzeichnis zu öffnen. '1p' kann für das zweite Verzeichnis in '2p' geändert werden.
um nur Verzeichnisse aus einem übergeordneten Verzeichnis aufzulisten.
quelle