Kiedy używam polecenia cp lub move w oknie terminala, aktualnie mam bash w takim folderze jak ten.
NES@server:~/Desktop/dir1$
A teraz chcę skopiować plik z tego miejsca ~/anotherdir/dir2
do aktualnie wybranego folderu w bash (dir1) użyłbym polecenia
cp ~/anotherdir/dir2/file ~/Desktop/dir1
czy istnieje łańcuch skrótów odnoszący się do bieżącego wybranego katalogu? Czyli w tym przykładzie nie muszę podawać pełnej ścieżki do docelowego katalogu, ale polecenie wie, że powinien używać bieżącego wybranego katalogu w bash? tzn. jak ~ oznacza katalog domowy?
..
oznacza, że jeden katalog jest niższy. Może być używany wiele razy, tj.cd ../..
..
zabierze Cię do katalogu nadrzędnego twojego bieżącego katalogu. Słuszna uwaga.popd
, apushd
jednak to zamienia się w eseju..
i..
są na poziomie systemu plików, więc każdy program je zaakceptuje. Z drugiej strony skróty takie jak~
i~-
są częścią powłoki.cd -
; nie wiedziałem, że istnieje.Możesz użyć $ (pwd), rozwiąże to dane wyjściowe polecenia pwd.
Przykład:
źródło
echo $PWD
../ reprezentuje bieżący katalog. Możesz więc użyć polecenia
cp ~/anotherdir/dir2/file ./
Spowoduje to skopiowanie pliku „file” do poprawnego katalogu roboczego.źródło
ln -s /some/long/path/to/get/to/cake
bez drugiego argumentu , spowoduje to bezpośrednie umieszczeniecake
dowiązania symbolicznego w twoim nurcie. Bardzo dobrze dla leniwych. Zapisuje a.
.Aby użyć bieżącego katalogu jako katalogu docelowego, użyj pojedynczej kropki '
.
'Długa odpowiedź
Korzystając z przykładu, wpisz:
cp ~/anotherdir/dir2/file .
Aby zobaczyć kropkę
.
,..
oraz../../
nazwy katalogów w działaniu, skopiuj i wklej następujące polecenia w terminalu:Dane wyjściowe polecenia drzewa wyglądają następująco:
Na
.
górze drzewa danych wyjściowych znajduje się nowy katalog bieżący,a
którym jest dziadek, doa/b/c
którego nawigowaliśmy za pomocącd ../../
polecenia. Poda
widzimy podkatalogówa/b
,a/b/c
aa/b/c2
Analiza linia po linii
Najpierw stworzyliśmy 4 katalogi w jednym wierszu, używając
&&
do łączenia wielu wierszy razem.Następnie zmieniliśmy katalog
a/b/c
na bieżący katalog dla następujących poleceń kopiowania:cp
) ustawiamy miejsce docelowe na nasz bieżący katalog ( c ) za pomocą.
...
.../c2
Następnie, jak wspomniano wcześniej, zmieniliśmy bieżący katalog na
a
i uruchomiliśmytree
polecenie, aby wyświetlić wszystkie katalogi i pliki w folderzea
.Sprzątać
Po zakończeniu usuwamy trzy katalogi i pliki za pomocą:
źródło
Zmienna dla bieżącego katalogu jest $ PWD
źródło
Możesz użyć kropki (
.
),~+
rozwinięcia tyldy ,pwd
polecenia lub zmiennej $ PWD do przedstawienia bieżącego katalogu roboczego (CWD). Wszystkie te polecenia mogą to zrobić:mv file_old_dir .
mv file_old_dir ~+
mv file_old_dir $(pwd)
mv file_old_dir $PWD
źródło
Tak (jak zauważyli inni), bieżący katalog to „.”, Dlatego możesz uruchamiać programy / skrypty z bieżącego katalogu przy pomocy ./script (tylko skrypt nie będzie działał, chyba że. Nie jest częścią PATH, co nie jest zalecane chociaż). Używanie $ PWD lub $ (pwd) jest nieco przesadzone, nawet jeśli inni wspominali, że użycie pojedynczej kropki jest na pewno krótsze :) „..” to katalog nadrzędny, na pewno „/” to root. Miło też wspomnieć, że „cd -” przeniesie cię do poprzedniego katalogu, w którym byłeś przed zmianą cwd (bieżący katalog roboczy). Może być również przydatny w codziennej pracy. Pojedyncze polecenie „cd” bez żadnego innego wiersza poleceń spowoduje przejście do „~” (twojego domu).
źródło
$PWD
nie jest przesadą przy tworzeniu dowiązań symbolicznych do ścieżek bezwzględnych.