Co można powiedzieć o zmianie katalogów w konsoli? Każdy wiele razy dziennie używa polecenia cd
. Okazuje się jednak, że wszystko można zrobić lepiej.
Na skróty
Bash ma zmienną systemową CDPATH. Podobnie jak PATH zawiera ona ścieżki do katalogów. Kiedy używamy polecenia cd
najpierw sprawdzane są ścieżki podane w zmiennej CDPATH. Oznacza to, że możemy „podpowiedzieć” poleceniu cd
, gdzie ma szukać żądanego katalogu. Jeśli w tej zmiennej umieścimy różne katalogi na różnych poziomach, przejście do nich w konsoli okaże się niezwykle łatwe. Aby skorzystać z tego ułatwienia, należy zmienną zdefiniować w pliku ~/.bashrc. Przykład „z życia”:
export CDPATH=/home/piotr/skrypty/:/home/piotr/Projekty/:/home/piotr/Obrazy
Teraz przeniesienie się do katalogu /home/piotr/Projekty/Projekt123
wymaga wpisania jedynie
cd Projekt123
niezależnie od tego, w którym miejscu drzewa katalogów się aktualnie znajdujemy.
Mało tego – nazwy zdefiniowanych w ten sposób katalogów i ich podkatalogów są podpowiadane po przyciśnięciu klawisza tab
.
Zazwyczaj jest kilka takich katalogów, do których sięgamy częściej niż do innych – Dokumenty, Obrazy, folder z projektami czy zdjęciami. Umieszczenie ścieżek do nich w zmiennej CDPATH naprawdę bardzo przyspiesza pracę.
cd i ls w jednym stali domu
Niemal po każdym poleceniu cd
od razu wpisujemy ls
– żeby się zorientować, czy jesteśmy we właściwym katalogu, żeby zobaczyć, czy są tam oczekiwane pliki…
Można spowodować, że bash przy każdej zmianie katalogu automatycznie wylistuje jego zawartość. Wymaga to umieszczenia w pliku ~/.bashrc następujących dwóch linii:
autols(){ cd $1; ls --color=always -lh; }
alias cd='autols'
Co to oznacza?
- W pierwszej linii definiujemy funkcję o nazwie
autols
, zawierającą dwa polecenia:cd
orazls
z odpowiednimi parametrami. W tym przypadkuls
będzie kolorować listing (parametr –color=always) oraz wyświetli pełną informację o plikach, a ich wielkość będzie pokazana jako kilobajty lub gigabajty (parametr -lh) - Następnie, w drugiej linii, definiujemy alias, przypisujący do polecenia
cd
wyżej zdefiniowaną funkcję.
Teraz przy każdej zmianie katalogu od razu dostaniemy listę jego zawartości. Modyfikując parametry polecenia ls
można dopasować format tej listy do własnych potrzeb.
Opisane wyżej sposoby korzystania z polecenia cd
potrafią bardzo ułatwić życie i przyspieszyć pracę w bashu. Mam nadzieję, że się przydadzą.
Żeby zadziałało polecenie:
cd skrypty
zmienna CDPATH musi być ustawiona na:
CDPATH=/home/piotr
Zgadza się. Dziękuję za poprawkę.