Obecnie spędzam wiele godzin pracy, przemieszczając się między dwiema ścieżkami, które są bardzo daleko w dół od drzewa i odwracają się od siebie u podstawy. Uderza mnie, że moje życie byłoby o wiele łatwiejsze, gdyby istniał argument przemawiający za cd
przejściem do ostatniego katalogu, w którym się znajdowali.
To znaczy, jeśli jestem w:
/etc/foo/bar/baz/moo
a następnie wpisz:
cd /var/lib/fubarred_app/blargh/logs
Chciałbym móc wrócić do pierwszego katalogu bez konieczności ponownego wpisywania całej ścieżki.
Klawisz pamięci go nie wycina, ponieważ używam wystarczającej liczby poleceń w każdym miejscu, że równie trudno jest wrócić i znaleźć ścieżkę, którą chcę, jak sam ją wpisać.
Czy istnieje krótkie polecenie, które pozwoliłoby mi przejść do poprzedniego katalogu?
bazmoo
” lub „blarghlog
” :)Odpowiedzi:
Komenda
wykona zamianę, której potrzebujesz na większości pocisków głównego nurtu, tym starszy jest dłuższy wariant
która użyje zmiennej środowiskowej, która zawiera poprzedni katalog roboczy.
Strona podręcznika POSIX dla
cd
wzmianek:źródło
cd $OLDPWD
do tego. Fajnie, że muszle głównego nurtu oferują znacznie krótszą formę.pushd
, a przynajmniej jest to wbudowane wbash
.Oprócz odpowiedzi Bryana, warto wspomnieć, że są też
pushd
ipopd
, które budują katalogi jak stos. Jest to również dostępne w systemie Windows NT; jednak nie jest dostępny we wszystkich powłokach.Na przykład możemy przejść do trzech różnych katalogów i zawsze zobaczysz swój stos, gdy zadzwonisz
pushd
:A kiedy dzwonisz
popd
trzy razy z rzędu, trafiasz do tych katalogów na stosie w odwrotnej kolejności. Jednocześnie stos zostanie ponownie opróżniony.Jeśli używasz Zsh; ma opcję AUTO_PUSHD, która automatycznie pcha
cd
na stos.źródło
cd
się alisempushd
, i to w większości byłoby takie samo.Istnieje kilka programów „skokowych”
Ułatwiają one wszelkiego rodzaju nawigację w katalogu. Używasz go, podając część ścieżki i to po prostu działa.
W Twoim przypadku
Możesz przypisać dowolną literę do tych programów, „j” to tradycja :)
j2 i z obsługują wiele wyszukiwanych terminów, ...
... i więcej opcji.
źródło
Oprócz
cd -
icd $OLDPWD
Możesz użyć wyszukiwania historii, naciskając
CTRL-R
i wpisując kilka litercd
wcześniej wprowadzonego polecenia.CTRL-R
Kilkukrotne naciśnięcie spowoduje wyświetlenie starszych dopasowań.Ta metoda będzie bardziej przydatna, jeśli masz więcej niż dwie ścieżki do zmiany.
źródło
cd
świetna pomoc!Możesz użyć tego do łatwego tworzenia aliasów dla katalogów:
i później:
źródło
alias =
części? hmmmmbashmark pozwoli ci dodać do zakładek serię folderów i przeskakiwać między nimi z uzupełnieniem tabulacji:
źródło
Inną możliwością byłoby po prostu pozostawienie dwóch okien otwartych, z jednym ustawionym w każdym katalogu.
źródło
share_history
w zsh.Wiem, że nie jest to ściśle odpowiedź na twoje pytanie, ale pomaga osiągnąć cel, jakim jest zabranie cię do ważnych katalogów .
w dowolnym systemie UNIX-bash możesz użyć CDPATH, aby rozszerzyć folder, w którym szuka polecenia cd.
z mojego pliku .bashrc:
cd najpierw szuka w twoim bieżącym folderze, a potem w moim katalogu projektu-kodowania.
.. zabiera mnie do ~ / sources / myproject z miejsca, w którym aktualnie stoję.
Prosta mała funkcja, która bardzo pomogła w nawigacji w katalogu.
źródło
cd
listy autouzupełniania (TAB), co jest dobre. Ale jeśli.
nie jest dołączony i jeśli w folderze CDPATH znajduje się folder o takiej samej nazwie jak w bieżącym katalogu, tocd samename
przejdzie on do katalogu CDPATH, a nie do katalogu w bieżącym katalogu, który jest zły. Musisz użyć,cd ./samename
aby dostać się do folderu duplikatu.Tak,
cd -
jest to najlepsza droga, ale martwię się o brak mocy, którą masz w swojej skorupie.popd
ipushd
są również dobre, i toj
też wygląda dobrze.Wrzucę własne narzędzie do ringu ... to po prostu coś, co buduję, dostosowuję i migruję ze sobą przez ostatnie 10 lat i działa dobrze dla tego, co chcę.
Wpis na blogu dotyczący mojego narzędzia do zarządzania katalogami
Jeśli to zadziała, to świetnie, ale jeśli nie, to obiecaj, że dostaniesz coś innego :) Po prostu nie możesz żyć
cd
sam.źródło
Jeśli masz tylko 2 katalogi, najłatwiejszym sposobem jest, jak wspomniano,
Kiedy miałem takie rzeczy w przeszłości, miałem kilka sztuczek, które zrobiłem, które mogą być pomocne.
Umieść polecenia aliasu w pliku .cshrc, coś takiego
Połącz skróty do interesujących ścieżek z mojego katalogu domowego. To jest jednorazowa sprawa.
Umożliwiłoby to zmianę katalogu tak łatwo, jak:
źródło
Autojump to polecenie bash / sh / zsh "cd", które z twoich działań, zobacz ten film .
więc to przeniosło cię do muczenia, gdy pozna ostatnie foldery
źródło
Belka
Mam własne narzędzie, ale przyjrzę się również narzędziu Dereks
j
.Oczywiście pierwszym wyborem jest skakanie tam iz powrotem
Moje narzędzie jest przeznaczone do katalogów z unikalnymi nazwami w systemach, o ile
locate
są dostępne; wyszukuje pasującą nazwę katalogu i przechodzi do pierwszego dopasowania:Zależności:
Wady:
Ulepszenia / modyfikacje:
Stosowanie:
Zaletą mojego rozwiązania:
cd -
źródło