Znaczenie „./” w terminalu Mac

6

Jestem nowym użytkownikiem terminala Mac. Jakie jest znaczenie "./"? Jaka jest różnica między poleceniami

rm image.png
rm ./image.png
rm *./image.png
Wątpić
źródło
Miałeś tutaj dwa pytania. Ta strona działa lepiej, gdy jest tylko jedno pytanie na pytanie. W ten sposób innym osobom łatwiej jest znaleźć rozwiązanie, jeśli mają ten sam problem. Zredagowałem twoje drugie pytanie, ale zadaj je osobno.
nohillside
1
W odpowiedzi na drugie (usunięte) pytanie SymbolHound to wyszukiwarka, która nie ignoruje znaków specjalnych. Ponadto terminal OS X jest środowiskiem podobnym do Uniksa, co oznacza, że ​​często można znaleźć odpowiedzi za pomocą wyszukiwanych terminów, takich jak „ kropka slash linux ”.
deizel
A jakie jest znaczenie słowa „otwarty”? Czy to jest jak „otwórz bieżący folder”?
Vitya Shurapov

Odpowiedzi:

18

./ jest częścią ścieżki do katalogu / pliku.

Jeśli jest używany jako część parametru polecenia

  • rm image.pngi rm ./image.pngsą dokładnie takie same i identyfikują plik w bieżącym katalogu
  • rm *./image.pngjest wzorcem, który szuka plików o nazwach image.pngwe wszystkich podkatalogach bieżącego katalogu, które kończą się kropką

Kluczowym zastosowaniem ./zwykle jest wywołanie skryptu / pliku wykonywalnego w bieżącym katalogu. Kiedy wykonujesz polecenie bez określania jego katalogu (np. cpZamiast /bin/cp), powłoka szuka tego we wszystkich katalogach wymienionych w $PATHzmiennej. Bieżący katalog zwykle nie jest częścią tej zmiennej (ze względów bezpieczeństwa), więc możesz użyć polecenia, ./command-nameaby powłoka szukała polecenia w bieżącym katalogu.

nohillside
źródło
2
+1 - Dodatkowo, jeśli jeden typ ls -a, zobaczy wpisy dla .i ... Prawdopodobnie już wiadomo, że ..jest to katalog nadrzędny, więc oczywiście .jest to katalog bieżący. Jednak takie rzeczy nie mają specjalnego znaczenia, jeśli są używane w środku łańcucha, a nie od samego początku, podobnie rm *./image.pngjak czerwony śledź w tym pytaniu (to po prostu glob pasujący do rzeczy takich jak directorywithadot./image.png.)
deizel
-3

Wyrażenie w ścieżce pliku (./) oznacza „przenieś w górę” (z bieżącej lokalizacji), tj. „This” = ”. i / = „w górę”, więc ../ oznacza „przenieś w górę 2 katalogi” lub przejdź do elementu nadrzędnego tego (./), tj. weź bieżącą lokalizację i przejdź w górę do „/” nowej lokalizacji.

Jordan Lafland
źródło