/ / Co to jest ./ podczas wykonywania na terminalu [closed] - linux, shell, unix, posix

Co to jest ./ podczas wykonywania na terminalu [closed] - linux, shell, unix, posix

Po udanym budowaniu.plik rozszerzenia cpp, istnieje potrzeba wykonania pliku a.out przy użyciu polecenia ./a.out. Co oznacza ./ reprezentować? Czy jest to po prostu sposób na wykonanie go na terminalu? Czy istnieje dalsze wyjaśnienie tego, co reprezentuje?

Odpowiedzi:

3 dla odpowiedzi № 1

Nie jest to związane z c ++. Jest przeznaczony dla systemów operacyjnych takich jak Unix. ./ mówi

spójrz w bieżącym katalogu na mój skrypt, zamiast patrzeć na wszystko katalogi określone w $PATH


1 dla odpowiedzi nr 2

. jest bieżącym katalogiem (np .. jest rodzicem bieżącego katalogu) ./a.out oznacza "uruchom a.out program z bieżącego katalogu ".

To jest dla ludzi, którzy nie mają . na ich drodze. To dobry pomysł, jeśli dzielisz swoje pudełko lub jesteś nadmiernie paranoidalny, ale w przypadku domowego pudła prawdopodobnie łatwiej jest po prostu Dodaj . do końca ścieżki, więc nie musisz używać wersji długiej.


1 dla odpowiedzi nr 3

Jeśli zrobisz ls -al, wyświetla listę plików i folderów bieżącego katalogu, zauważysz, że pokazuje a . jako wpis.

Odpowiada to odniesieniu do bieżącego katalogu.

Mówimy powłoce do wykonania a.out plik, który jest względny do bieżącego katalogu, kiedy mówimy ./a.out


1 dla odpowiedzi nr 4

Po wpisaniu polecenia w powłoce systemu Linux, aby zdecydować, co zrobić, powłoka najpierw sprawdza, czy istnieje / w tym. Jeśli nie, szuka:

  1. Wewnętrzne polecenie powłoki.
  2. Plik wykonywalny w niektórych katalogach wymienionych w $PATH Zmienna środowiskowa.

Jeśli tam jest / w nazwie szuka zawsze pliku o tej nazwie.

I ., jak zapewne wiesz, jest bieżącym katalogiem.

Więc ./ robi kilka rzeczy:

  1. Zapobiega interpretowaniu polecenia przez powłokę jako powłokę wbudowaną.
  2. Zapobiega szukaniu przez program powłoki w programie $PATH.
  3. Powoduje, że powłoka szuka programu tylko w bieżącym katalogu.