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 docd
builtincommand, 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