GNU/Linux >> Znalost Linux >  >> Linux

Jak udělat alias pro dlouhou cestu?

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 do cd 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

Linux
  1. Jak udělat sudo zapamatovat si heslo déle

  2. Jak získat dokončování bash pro aliasy příkazů?

  3. Jak zakázat alias v Bash pro jeden příkaz?

  1. Jak vytvořit VPN

  2. Jak zajistit, aby příkaz alias fungoval ve skriptu bash nebo souboru bashrc

  3. Jak přidat výchozí zahrnutou cestu pro GCC v Linuxu?

  1. Jak udělat soubor řídký?

  2. Jak přimět git, aby při vytažení nepožadoval heslo?

  3. Jak přinutím sudo, aby požádal o heslo uživatele root?