Czy istnieje coś takiego jak historia wyszukiwania wstecznego w bash (Ctrl-r), ale tylko dla katalogów?
Mam kilka głębokich hierarchii folderów, do których chcę przejść, więc chciałbym użyć czegoś takiego jak historia wyszukiwania wstecznego, ale szuka ona tylko nazw folderów i podaje absolutne ścieżki.
Zasadniczo dałby podobne wyniki do używania, !?
ale tylko dopasowania poleceń z cd z przodu, możesz przechodzić między wynikami i pełnymi ścieżkami.
Jak dotąd najlepszym rozwiązaniem, jakie znalazłem, są znaki kreskowe .
Odpowiedzi:
Spójrz na autojump :
źródło
Jest
to jest polecenie „cd [spacja] [łącznik]”, które przechodzi do katalogu, w którym byłeś wcześniej, zasadniczo „historii głębi 1”. Powtarzane „cd -” przełącza się między dwoma katalogami.
Cytując stronę podręcznika:
Niestety nie znam prawdziwej wbudowanej historii katalogów.
źródło
pushd dir
popd
para, która może przechowywać stos historii katalogów. Jest to bardzo pomocne w skryptach działających w różnych folderach.pushd
ipopd
już tu jest wspomniane.bash ma pushd / popd / dirs. Mam to w moim .bashrc, aby automatycznie wypychać katalogi na stos basha.
Usuń je za pomocą
popd
i wyświetl stos za pomocądirs
źródło
Miałem dobre doświadczenia ze skokiem z. Umożliwia ukończenie, chociaż tylko do ostatecznego celu, nie krocząc ścieżką. Jednak pokazuje pełną ścieżkę po zakończeniu zakładki.
źródło
Po prostu z własnego doświadczenia napisałem jakiś prosty skrypt, aby spełnić to wymaganie jakiś czas temu, zastępuje on wbudowane polecenie cd prostą funkcją, która dołącza nową lokalizację katalogu do pliku historii, następnie używa się skryptu python do zapewnia interfejs bash, który dynamicznie aktualizuje uporządkowaną listę katalogów podczas wprowadzania wyszukiwanych haseł, podobnie jak wyszukiwanie poleceń bash w odwrotnej kolejności.
Jest dostępny na git-hub dla tych, którzy są ciekawi.
źródło
Chciałbym polecić mój
ltcd
do szybkiej nawigacji po historii katalogów:https://github.com/dczhu/ltcd
Zapewnia następujące funkcje ułatwiające życie:
źródło
Stworzyłem skrypt, który ma podobną funkcjonalność do polecenia oh-my-zsh,
dirs -v
które działa na bash. Jeśli kiedykolwiek używałeś oh-my-zsh , mogłeś zauważyć, że historia katalogów podana przez poleceniedirs -v
będzie resetowana za każdym razem, gdy wyjdziesz z terminala. Nie stanie się to jednak, jeśli użyjesz tego skryptu .Funkcjonalność:
Pokaż listę 10 ostatnio używanych katalogów z
d
.Przejdź do dowolnego katalogu na liście, wpisując numer katalogu na liście. Musisz użyć 0 zamiast 10, aby przejść do 10. katalogu.
Ścieżka do katalogu będzie umieszczana na górze listy za każdym razem, gdy użyjesz
v
( vim ) do edycji plików lubo
( xdg-open ), aby otworzyć plik z tego katalogu. Lub jeśli chcesz, za każdym razem, gdy odwiedzasz katalog.Możesz to zobaczyć tutaj w akcji .
źródło
Możesz dodać ten fragment kodu do swojego
~/.bashrc
, któryudostępnia niestandardowe polecenie cd
i udostępnia polecenie wyszukiwania historii cd.
Oczywiście podane przeze mnie polecenie cdhist jest bardzo proste, a nie to, czego chciałeś; ale możliwe jest użycie instrukcji case lub rozszerzenia parametrów, aby osiągnąć coś podobnego do tego, co chcesz.
Możesz nawet dodać funkcję „Programowalnego zakończenia”, która mogłaby zostać użyta do dodania pełnego
cd /path/to/mydir
polecenia na podstawie unikatowego ciągu podrzędnego/path/to/unique/mydir
, chociaż metoda ta nadal wymagałaby wpisaniacd unique/mydir<tab>
.źródło
dirs
polecenie bash, które zasadniczo robi to samomy_dirs
, ale w jednym wierszu.alias cd=pushd
, że byłaby to najbardziej elegancka forma.Możesz budować własną
cd
komendę zpushd
,popd
,dirs
wbudowanych poleceń.Stosowanie
cd --
(wyświetl aktualną historię)cd -num
(przejdź do katalogu num)cd -
(przejdź do poprzedniego katalogu)źródło
Złożyłem to narzędzie, które łączy poprzednie rozwiązania do przechowywania kompleksowej globalnej historii CLI z interaktywnym narzędziem grepping o nazwie percol (mapowane na C ^ R). Używam go do pobierania poleceń według miejsca ich uruchomienia lub do znajdowania katalogu za pomocą polecenia. Nadal jest zręczny na pierwszym komputerze, z którego zacząłem go używać, teraz z ponad 2-letnią historią CLI.
Narzędzie grep działa zarówno na ścieżce, jak i poleceniu, ale może być dla Ciebie przydatne. Zobacz także 'dirs -v' w zsh
https://github.com/gawells/ariadne
źródło
cd share/man
działa tylko jeśli jestem już w / usr.