답변:
아닙니다, 당신의 가정은 틀 렸습니다. my_script
홈 디렉토리에서 파일 의 전체 경로 이름 은 다음과 같습니다 /home/your_user_name/my_script
. ./my_script
터미널에 입력 하면 실제로 스크립트를 실행하려고 시도하고 (실행 파일 인 경우) 현재 작업 디렉토리가이면 스크립트가 실행됩니다 /home/your_user_name/
. 스크립트를 실행하려면 내가 말했듯이 전체 파일 경로를 사용할 수도 있습니다 /home/your_user_name/my_script
.
UNIX 경로 이름은 인터넷 주소처럼 보이고 느껴지므로 호환성이있는 것으로 생각됩니다. 현재 작업 디렉토리의 전체 경로 이름은 다음 명령을 사용하여 터미널에서 찾을 수 있습니다.
pwd
사용자 홈 디렉토리의 전체 경로를 찾으려면 다음을 사용하십시오.
echo ~
echo $HOME
echo /home/$USER
위의 세 명령은 동일합니다.
파일의 전체 경로 이름을 찾으려면 readlink
command 를 사용할 수 있습니다 . 예를 들어, 귀하의 경우 :
cd ~
readlink -f my_script
readlink
은 소프트 링크의 실제 경로를 보여줍니다
전체 경로를 이해하려면 먼저 시작점을 알아야합니다.
루트 디렉토리 /
는 * nix 기반 운영 체제의 시작점입니다. 시스템과 사용자 모두의 다른 모든 디렉토리를 포함합니다.
사용자의 홈 디렉토리 /home/USERNAME/
또는 ~/
짧게 말하면 사용자의 파일과 디렉토리가 들어 있습니다. 예를 들어 그림, 음악, 문서 등입니다. 이러한 각 디렉토리는 /home/USERNAME/DIRECTORY
예를 들어 문서가에있는 것처럼 참조됩니다 /home/USERNAME/Documents
.
디렉토리와 마찬가지로 파일은 동일한 방식으로 참조됩니다. 예를 들어 my_script
, 사용자의 홈 디렉토리에 있는 파일 sosytee
은 전체 경로를 사용 /home/sosytee/my_script
하거나 ~/my_script
짧게 참조 할 수 있습니다 .
파일과 디렉토리는 시스템의 모든 곳에서 전체 경로를 사용하여 참조 / 액세스 할 수 있습니다. 또한 같은 디렉토리에있는 경우 이름 만 사용하여 액세스 할 수 있습니다. 예를 들어 ~/
터미널 을 사용할 때 사용자가있는 경우을 사용하여 my_script
파일에 액세스 할 수 있습니다 my_script
.
또한 자신의 PATH 변수에 배치 된 경우 해당 이름 만 사용하여 디렉토리와 파일에 액세스 할 수 있습니다. 을 사용하여 PATH에 무엇이 저장되어 있는지 확인할 수 있습니다 echo $PATH
.
명령 행을 사용하여 파일에 액세스하는 방법에 대한 간단한 예 :
/home/USERNAME/
있는 cat
명령 을 사용하려고합니다 /home/USERNAME/Documents
.cat Documents/foo.txt
사용자가 내부 에 있으며 찾은 ad ~/Documents
라는 스크립트를 실행하려고합니다 .foo.sh
~/Scripts/Foo
sh ../Scripts/Foo/foo.sh
또는
sh ~/Scripts/Foo/foo.sh
꼭 이것은 단지 요약 일뿐입니다.
추가 정보
Machtelt Garrels의 초보자를위한 배쉬 가이드
더에 대한 PATH 여기
소개 유닉스 디렉토리 구조
전체 경로 이름이 ./my_script라고 가정했습니다.
전혀 그렇지 않다. 그 경로는 상대적입니다. 시작점은 현재 디렉토리를 나타냅니다.
$ ls ./my_script
my_script
$ cd ..
$ ls ./my_script
ls: cannot access ./my_script: No such file or directory
보시다시피, 디렉토리를 변경 my_script
했는데를 찾을 수 ./my_script
없습니다. 이는 절대 경로가 아닙니다.
전체 경로 이름이 ./my_script라고 가정했는데 루트 폴더에 있지만 확실하지 않습니다.
보내는 사람 위키 백과 :
[...] 전체 경로 또는 절대 경로 는 작업 디렉토리 또는 결합 된 경로에 관계없이 하나의 파일 시스템에서 동일한 위치를 가리키는 경로입니다.
내가 파일을 찾을 수있을 때마다./my_script
조건을 채우지 않기 때문에 상대 경로라고 추론해야합니다.my_script
상대 경로는 전체 절대 경로를 제공 할 필요가 없습니다 있도록, 사용자 또는 응용 프로그램의 작업 디렉토리에 상대적인 경로입니다.
여기 ... 우분투 서버를 Windows에 설치했기 때문에 묻는다고 가정합니다 ...
이 코드를 Windows의 폴더 탐색기로 복사하십시오. %userprofile%\AppData\Local\Packages
집 위치를 보여줄 것입니다. 시스템 어딘가에 숨겨져 있습니다.
이 폴더에서 파일을 보려는 Linux 배포 폴더를 두 번 클릭하십시오.
이 폴더의 이름은 나중에 약간 변경 될 수 있습니다. Linux 배포판의 이름을 딴 폴더를 찾으십시오.
당신의 집은 아래에있을 것입니다 LocalState\rootfs\home
이 정보의 대부분은 Windows의 Ubuntu Bash 파일 및 Bash의 Windows 시스템 드라이브에 액세스하는 방법 에서 얻었 습니다.