리눅스에서 ./ 하고 뒤에 파일 이름이 붙는건 어떤 경우인가요?
gcc에서 a.out 파일을 만들고 그냥 a.out을 실행하면 안되는데 ./a.out을 입력하면 되요 이건 왜 이런건가요?
ls로 현재 디렉토리에 이미 있는거 아닌가요?
55글자 더 채워주세요.
1개의 답변이 있어요!
안녕하세요. 수려한백로159입니다.
리눅스에서 './파일이름' 형태로 명령을 입력하는 것은 해당 파일을 실행하겠다는 의미입니다. './'는 현재 디렉토리를 가리키는 특수한 경로인데요, 따라서 './a.out'은 현재 디렉토리의 a.out 파일을 실행하겠다는 것을 의미합니다.
그냥 'a.out'으로 실행하려고 하면, 리눅스 시스템은 a.out이라는 이름의 파일을 시스템 경로(PATH)에서 찾으려고 합니다. 그런데 보통 시스템 경로에는 시스템 명령어들이 등록되어 있고, 사용자가 생성한 프로그램은 포함되지 않기 때문에 명령을 찾지 못하게 되는 거죠.
반면, './a.out'으로 입력하면 시스템은 현재 디렉토리에서 a.out이라는 파일을 찾아 실행하게 됩니다. 결국 './'는 "내가 지금 있는 이 디렉토리에서"라는 의미를 가지고 있습니다. 그래서 'ls'로 확인하면 현재 디렉토리에 a.out 파일이 보이는 것이죠.