Skrót utworzyłem za pomocą opcji „make link”. Kiedy wchodzę do folderu tego skrótu, nie widzę żadnych folderów nad nim, więc nie mogę łatwo do niego nawigować.
Czy istnieje sposób, aby przejść o jeden folder w górę w GUI? Może skrót? (Nie można tego zrobić cd ..
^ __ ^).
Na przykład w systemie Windows rzeczywiście jestem w stanie nawigować w sposób, który opisuję, oto obraz Win10, który to wyjaśnia:
nautilus
symbolic-link
JohnDoea
źródło
źródło
Alt+up key
Odpowiedzi:
Dlaczego jest to trudne pytanie
Pytanie ma kilka wyzwań:
nautilus
nie komunikuje się bezpośrednio z wiersza poleceń, na przykład w celu uzyskania aktualnie aktywnego katalogu, ani nie można „wysłać” aktualnie otwartego folderu (-window) do innego katalogu z wiersza poleceń."NAUTILUS_SCRIPT_CURRENT_URI"
, Nautilus nie zwraca prawdziwej ścieżki do bieżącego folderu, ale „widzi” link tak, jakby był to folder rzeczywisty.Rozwiązanie jest zatem tak brudne, jak tylko się da; musimy znaleźć obejścia. Poniżej cztery opcje rozwiązania problemu.
1. kliknij prawym przyciskiem myszy, aby przejść o jeden poziom wyżej
Aby uzyskać prawdziwą ścieżkę do bieżącego katalogu, musimy pobrać informacje z linku. Możemy to zrobić za pomocą
ls -l
linku, który wyświetli np .:gdzie sekcja po
->
jest prawdziwą ścieżką wewnątrz dowiązania symbolicznego lub, używającpython
:Używając tego w
nautilus
skrypcie, możemy pośrednio uzyskać rzeczywistą ścieżkę do bieżącego pliku lub folderu.Zatem jeśli mamy ścieżkę, jak sprawić, by łodzik przesunął się o jeden poziom wyżej?
Ponownie nie możemy rozwiązać tego problemu i utrzymujemy ręce w czystości. Aby przejść o jeden poziom wyżej, najpierw trochę edytujemy znalezioną ścieżkę, z:
w
następnie, używając
xdotool
do symulacji Ctrl+ L(skrót GUI do wstawienia ścieżki do okna nautilus, ponieważ nie ma opcji cli, aby przejść do innego katalogu przy użyciu bieżącego okna ), a następniexclip
wkleić edytowaną ścieżkę + Enter, mamy działające rozwiązanie !W praktyce
Jesteśmy w folderze otwartym z linku („Link do telegramu”) na moim pulpicie. Prawdziwy folder jest sub mojego
Downloads
folderu:Następnie kliknij prawym przyciskiem myszy dowolny plik w folderze, aby uruchomić skrypt:
Automatycznie wstawiana jest ścieżka do katalogu nadrzędnego:
I również automatycznie Returnjest naciskany, i przenosimy o jeden poziom wyżej:
Scenariusz
Jak skonfigurować
Skrypt potrzebuje zarówno
xdotool
axclip
:utwórz, jeśli jeszcze nie istnieje, katalog
Skopiuj powyższy skrypt do pustego pliku, zapisz go jako
level_up
(bez rozszerzenia)~/.local/share/nautilus/scripts
i włączTeraz powinieneś być w stanie uruchomić skrypt, klikając prawym przyciskiem myszy plik (dowolny)> skrypty> poziom_up:
[ EDYCJA ] Zmieniłem powyższy skrypt, aby wkleić ścieżkę do
nautilus
okna, zamiastxdotool
pisać . Maneeds
xclip
być zainstalowany, ale jest to znaczna poprawa, szczególnie na bardzo długich ścieżkach.2. Alternatywnie otwórz nowe okno nautilus w katalogu nadrzędnym
Ty mógł unikać
xdotool
, poprzez skrypt otworzyć nowe okno Nautilus, w katalogu rodzica. Skrypt byłby wtedy jeszcze krótszy:W takim przypadku nie trzeba instalować
xdotool
. Możemy nawet rozszerzyć skrypt, zamykając oryginalne okno i umieszczając nowe okno dokładnie w tej samej pozycji (i rozmiarze).Minusem jest to, że historia oryginalnego okna jest w ten sposób zagubiona.
3. Dodatkowe rozwiązanie: alternatywny sposób (automatycznego) tworzenia linków
Nie dotyczy istniejących łączy, ale gdy jest używany z GUI,
.desktop
pomocny może być skrypt nautilus do automatycznego tworzenia plików wykonywalnych po kliknięciu prawym przyciskiem:kliknij katalog prawym przyciskiem myszy, aby utworzyć skrót (zachowując się jak łącze)
W przeciwieństwie do dowiązań symbolicznych, linki te prowadzą do rzeczywistego folderu, nie zachowując się jak sam folder:
Scenariusz
Jak używać
make_link
(bez rozszerzenia)~/.local/share/nautilus/scripts
i włącz.desktop
zostanie utworzony w tym samym katalogu, w razie potrzeby przenieś go w inne miejsce; połączona ścieżka jest absolutna.Nadaj linkowi ikonę wyróżniającą
Alternatywnemu linkowi możesz nadać ikonę wyróżniającą. Jeśli przeszukujesz katalog w
/usr/share/icons
poszukiwaniu „folderu”, pojawi się wiele ważnych opcji.Jeśli w skrypcie wiersz
"Icon=folder",
zostanie zastąpiony przezIcon=stock_folder-copy,
(użyj nazwy ikony bez rozszerzenia), wynik w moim systemie to:Oczywiście możesz również użyć własnej ikony niestandardowej, ale jeśli używasz pełnych ścieżek (nie używaj
~
), powinieneś dołączyć rozszerzenie ikony.4. Przejdź do katalogu nadrzędnego za pomocą klawisza skrótu
Prawdopodobnie najwygodniejsza opcja; z oknem nautilus z przodu naciśnij klawisz skrótu, aby przejść o jeden katalog w górę.
Scenariusz
Używać
W przypadku tego rozwiązania zarówno
xclip
ixdotool
musi być w systemie.Skopiuj skrypt do pustego pliku i zapisz go jako
level_up.py
(gdziekolwiek).Dodaj go do klawisza skrótu: wybierz: Ustawienia systemu> „Klawiatura”> „Skróty”> „Skróty niestandardowe”. Kliknij „+” i dodaj polecenie:
Uwaga: Opcje skrótów są w tym przypadku nieco ograniczone, ponieważ sam skryptbędzie symulowałCtrl+L, aCtrl+Alt+Lspowoduje wylogowanie ...Ctrl+\działało dobrze w moim systemie.
Wyjaśnienie
Ten skrypt również symuluje Ctrl+ L, ale zamiast używać nautilusa
"NAUTILUS_SCRIPT_CURRENT_URI"
, używaxclip
do skopiowania automatycznie wybranej ścieżki w oknie nautilusa. Podobnie jak opcja 1, skrypt oblicza prawdziwą ścieżkę i wyprowadza katalog nadrzędny.Ta opcja może być przydatna, jeśli wolisz klawiaturę niż kliknięcie prawym przyciskiem myszy.
źródło
Lub w przypadku Ubuntu 14.04, nautilus 3.10-1, z
xdotool
dodanym pakietem, po prostu użyj następujących.local/share/nautilus/scripts/updirtree
plików:Ostateczny cytat powinien zawierać po prostu nowy wiersz lub return (
0x0a
). Zpwd
nautilus daje inny wynik niż podczas uruchamiania z bash / terminalu - zwraca rzeczywistą ścieżkę, a nie ścieżkę używającą łącza.Zgadzam się, że to nie ma sensu, jest nieudokumentowane i nawet nie mogę dowiedzieć się, jakie środowisko wykonawcze uruchamia kod (nie mogę znaleźć powłoki, która daje taki wynik), ale działa. To hack, dlatego dołączyłem wersję nautilusa. Kto wie, jak długo to będzie działać? Może się zepsuć przy następnej aktualizacji nautilusa (lub nieznanego interpretera), ale dla mnie działa on na linki do zamontowanych lokalizacji, linki do miejsc w drzewie katalogów lub po prostu zwykłe lokalizacje w drzewie katalogów.
źródło
$(pwd)
jest to katalog roboczy powłoki , a nie nautilus . Zobacz help.ubuntu.com/community/NautilusScriptsHowtoxclip
wkleiłem ścieżkę, która nie zależy od długości ścieżki.Czysta poprawka, ale wymaga przebudowania źródła przez cofnięcie tego zatwierdzenia :
Instrukcje budowania:
Pobierz źródło:
Pobierz zależności kompilacji
Dokonaj potrzebnej modyfikacji z powyższej łatki
Edytować
src/nautilus-mime-actions.c
Zbuduj i zainstaluj
Aby przetestować bez instalacji
Aby go zainstalować
To sprawi, że Nautilus rozpozna linki na swojej ścieżce docelowej. BTW, jakiś czas temu został zgłoszony jako błąd. Jeśli uważasz, że jest to funkcja, prześlij kolejny raport o błędzie, prosząc o ustawienie przełącznika lub określonego skrótu.
Odniesienie: Jak mogę powstrzymać Nautilusa przed dereferencją dowiązań symbolicznych? [Zamknięte]
źródło
/usr/local/bin/
, więc system zawsze będzie uruchamiał zmodyfikowaną kopię, zgodnie z listą$PATH