Možná je lepší použít odkazy
Soft Link
Symbolický nebo měkký odkaz (soubory nebo adresáře, flexibilnější a samostatně dokumentující)
# Source Link
ln -s /home/jake/doc/test/2000/something /home/jake/xxx
Pevný odkaz
Pevný odkaz (pouze soubory, méně flexibilní a není samodokumentující)
# Source Link
ln /home/jake/doc/test/2000/something /home/jake/xxx
Jak vytvořit odkaz na adresář
Nápověda :Pokud nepotřebujete vidět odkaz u vás doma, můžete jej začít tečkou.; pak bude ve výchozím nastavení skrytý, pak k němu budete mít přístup jako
cd ~/.myHiddelLongDirLink
Existuje možnost shellu cdable_vars :
cdable_vars
Pokud je toto nastaveno, argument docdbuiltincommand, který není adresář, se považuje za název proměnné, jejíž hodnota je adresář, do kterého se má změnit.
Můžete to přidat do .bashrc :
shopt -s cdable_vars
export myFold=$HOME/Files/Scripts/Main
Všimněte si, že jsem nahradil vlnovku $HOME; uvozovky brání expanzi vlnovky a Bash by si stěžoval, že neexistuje žádný adresář ~/Files/Scripts/Main .
Nyní to můžete použít následovně:
cd myFold
Ne $ Požadované. To je vlastně celý smysl – jak ukazují další odpovědi, cd "$myFold" funguje bez možnosti shell. cd myFold funguje také, pokud je cesta v myFold obsahuje mezery, nejsou vyžadovány uvozovky.
Obvykle to funguje i s automatickým doplňováním karet jako _cd funkce v bash_completion zkontroluje, zda cdable_vars je nastaven – ale ne každá implementace to dělá stejným způsobem, takže možná budete muset použít zdroj bash_completion znovu ve vašem .bashrc (nebo upravte /etc/profile pro nastavení možnosti shellu).
Jiné shelly mají podobné možnosti, například Zsh (cdablevars ).
Protože se jedná o proměnnou prostředí (alias má jinou definici v bash ), musíte to vyhodnotit něčím jako:
cd "${myFold}"
nebo:
cp "${myFold}/someFile" /somewhere/else
Ale ve skutečnosti mi připadá jednodušší, pokud chcete snadné přepínání do tohoto adresáře, vytvořit skutečný alias (v jednom z bash spouštěcí soubory jako .bashrc ), abych si mohl ukládat stisknuté klávesy:
alias myfold='cd ~/Files/Scripts/Main'
Pak můžete jen použít (bez cd ):
myfold
Chcete-li se zbavit definice, použijte unalias . Následující přepis zobrazuje vše z nich v akci:
pax> cd ; pwd ; ls -ald footy
/home/pax
drwxr-xr-x 2 pax pax 4096 Jul 28 11:00 footy
pax> footydir=/home/pax/footy ; cd "$footydir" ; pwd
/home/pax/footy
pax> cd ; pwd
/home/pax
pax> alias footy='cd /home/pax/footy' ; footy ; pwd
/home/pax/footy
pax> unalias footy ; footy
bash: footy: command not found