henere
Goto Top

Ubuntu - Verzeichniswechsel in Shell

Servus zusammen,

wie kann ich mit der bash in ein Verzeichnis wechseln, dessen Name mit - beginnt ?

root@www:/var/www/html/xt600/xt_werkstatt/_technische-referenz# ll
insgesamt 44
drwxr-xr-- 11 www-data www-data 4096 Aug 14  2010 ./
drwxr-xr-- 17 www-data www-data 4096 Aug 11  2011 ../
drwxr-xr--  2 www-data www-data 4096 Aug 14  2010 -einstelldaten/
drwxr-xr--  2 www-data www-data 4096 Aug 14  2010 -explosionszeichnungen/
drwxr-xr--  2 www-data www-data 4096 Aug 14  2010 -GetriebeRechner/
drwxr-xr--  2 www-data www-data 4096 Dez 13  2010 -literatur/
drwxr-xr--  2 www-data www-data 4096 Aug 14  2010 -motorwechsel/
drwxr-xr--  2 www-data www-data 4096 Aug 14  2010 -schaltplan/
drwxr-xr--  2 www-data www-data 4096 Aug 14  2010 -techn_daten/
drwxr-xr--  2 www-data www-data 4096 Aug 10  2011 -wartungsdaten/
drwxr-xr--  2 www-data www-data 4096 Aug 14  2010 -zuendkerzen/


root@www:/var/www/html/xt600/xt_werkstatt/_technische-referenz# cd -schaltplan/
-bash: cd: -s: Ungültige Option

root@www:/var/www/html/xt600/xt_werkstatt/_technische-referenz# cd '-schaltplan/' 
-bash: cd: -s: Ungültige Option
cd: Gebrauch: cd [-L|[-P [-e]] [-@]] [dir]
root@www:/var/www/html/xt600/xt_werkstatt/_technische-referenz# cd "-schaltplan/" 
> ^C

Wie komme ich da bitte rein ?

Danke und Grüße, Henere

Content-ID: 311860

Url: https://administrator.de/forum/ubuntu-verzeichniswechsel-in-shell-311860.html

Ausgedruckt am: 22.04.2025 um 06:04 Uhr

129813
Lösung 129813 05.08.2016 aktualisiert um 16:06:38 Uhr
Goto Top
Use
cd -- -schaltplan
or
cd ./-schaltplan
Regards
Henere
Henere 05.08.2016 um 16:08:45 Uhr
Goto Top
Thx a lot.
Kraemer
Kraemer 05.08.2016 um 16:52:26 Uhr
Goto Top
Zitat von @129813:
cd ./-schaltplan
Das ist die korrekte Lösung


> cd -- -schaltplan
Das ist streng genommen schlicht Zufall, das es überhaupt funktioniert

Erstelle mal ein Verzeichnis welches als einziges Zeichen ein - hat. Ein
cd -- -
wird nicht funktionieren.

Gruß Krämer
Henere
Henere 05.08.2016 um 17:02:46 Uhr
Goto Top
Servus,

cd -- -schaltplan
hat funktioniert.

Ich hab das ja nur so übernommen und bin dabei das ganze aufzuarbeiten.

Ein Verzeichnis was nur ein - hat ist nicht aussagekräftig und würde nie so vin mir erstellt werden.

Danke Dir tropsdem für die Tipps.

Grüße, Henere
129813
129813 05.08.2016 aktualisiert um 17:42:02 Uhr
Goto Top
Zitat von @Kraemer:
Das ist streng genommen schlicht Zufall, das es überhaupt funktioniert
NO, that's absolutely correct, have a look into the man page! You can tell this to someone who has no LPIC, but not me face-wink.
http://linux.about.com/library/cmd/blcmdl1_compgen.htm
BASH BUILTIN COMMANDS
Unless otherwise noted, each builtin command documented in this section as accepting options preceded by - accepts -- to signify the end of the options. 
The -- says everything that follows will not be interpreted as a parameter. This is a very common linux style to signify that no command options will follow after it! This also works in many other builtin bash commands.

Erstelle mal ein Verzeichnis welches als einziges Zeichen ein - hat. Ein
> cd -- -
> 
wird nicht funktionieren.
This also works, with a small addition ... add a trailing slash face-smile
cd -- -/
Lochkartenstanzer
Lochkartenstanzer 05.08.2016 um 19:19:45 Uhr
Goto Top
Moin,

Mein Tipp: Unter unixoiden Betriebssystemen sich an bestimtme Konventionen halten, wie z.B. Filenamen nicht mit einem "-" zu beginnen oder "Leerzeichen" zu vermeiden, wenn es geht.

Denn der "-" wird Dir spätestens dann in die Quere kommen, wenn Du in die Ordner und Dateinamen irgendwelchen Skripten und Programmen als Parameter übergibst, wie z.b. in
ls . |  xargs foobar.sh 

lks
Henere
Henere 05.08.2016 um 19:42:27 Uhr
Goto Top
Zitat von @Lochkartenstanzer:

Moin,

Mein Tipp: Unter unixoiden Betriebssystemen sich an bestimtme Konventionen halten, wie z.B. Filenamen nicht mit einem "-" zu beginnen oder "Leertzeichen" zu vermeiden, wenn es geht.

Denn der "-" wird dir spätestens dann in die Quere kommen, wenn Du in die ordner udn dateinamen irgendwelchen Skripten udn Programmen als parameter übergibst, wie z.b. in
> ls . |  xargs foobar.sh 
> 

lks

Ja das ist mir schon klar, aber wenn man fremde Baustellen übernimmt, muss man dort erstmal mit den Gegebenheiten klar kommen, bis man die Zeit und Muße hat, das umzubauen.

- Never run a touching system - face-smile

Henere