전체 경로 이름은 무엇입니까?


21

전체 경로 이름이 실제로 무엇을 의미하는지 이해하고 싶습니다. 내 홈 디렉토리에 my_script라는 파일이 있습니다. 전체 경로 이름이 ./my_script라고 가정했는데 루트 폴더에 있지만 확실하지 않습니다. 누군가 제발 나를 밝게 해줄 수 있습니까?


"이름을 가진 파일 목록을 표시하는 명령을 작성할 수 있습니까?" 에서 또 다른 새로운 문제 ?
Braiam

답변:


30

아닙니다, 당신의 가정은 틀 렸습니다. 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

위의 세 명령은 동일합니다.

파일의 전체 경로 이름을 찾으려면 readlinkcommand 를 사용할 수 있습니다 . 예를 들어, 귀하의 경우 :

cd ~
readlink -f my_script

+1 readlink은 소프트 링크의 실제 경로를 보여줍니다
lamino

7

전체 경로 이름은 실제로 파일 시스템의 /디렉토리 에서 해당 파일 또는 폴더의 전체 경로를 의미합니다 .

예를 들어, 스크립트의 전체 경로는 다음과 같습니다.

/home/your_username/my_script

또는 grep실행 파일 의 전체 경로 이름 은

/bin/grep

./my_script경우 기호 .는 현재 디렉토리를 나타내므로 실제로는 "my_script라는 파일 또는 폴더의 현재 디렉토리를 찾으십시오"라고 말합니다.


3

전체 경로를 이해하려면 먼저 시작점을 알아야합니다.

루트 디렉토리 /는 * 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.

명령 행을 사용하여 파일에 액세스하는 방법에 대한 간단한 예 :

  • 사용자가 현재 foo.txt라는 파일에 /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

꼭 이것은 단지 요약 일뿐입니다.

추가 정보


2

전체 경로 이름은 루트 디렉토리의 경로입니다 (예 :) /. ./my_script경로는 현재 디렉토리에 상대적으로 주어지기 때문에 상대 경로 이름 .입니다. 따라서 홈 디렉토리에 있으면 전체 경로는 s.th입니다. 처럼 /home/sosytee/my_script. 홈 디렉토리에는 "바로 가기"가 있습니다 ~. 즉, 쓸 수도 있습니다 ~/my_script. 그러나 그것은 물론 모든 사용자에 대해 다른 경로로 해결됩니다.

현재 디렉토리 호출의 전체 경로를 보려면 pwd.


2

전체 경로 이름이 ./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

상대 경로는 전체 절대 경로를 제공 할 필요가 없습니다 있도록, 사용자 또는 응용 프로그램의 작업 디렉토리에 상대적인 경로입니다.


0

여기 ... 우분투 서버를 Windows에 설치했기 때문에 묻는다고 가정합니다 ...

이 코드를 Windows의 폴더 탐색기로 복사하십시오. %userprofile%\AppData\Local\Packages

집 위치를 보여줄 것입니다. 시스템 어딘가에 숨겨져 있습니다.

이 폴더에서 파일을 보려는 Linux 배포 폴더를 두 번 클릭하십시오.

  1. 우분투 : CanonicalGroupLimited. 우분투 온 Windows_79rhkp1fndgsc
  2. openSUSE Leap 42 : 46932SUSE.openSUSELeap42.2_022rs5jcyhyac
  3. SUSE Linux Enterprise Server 1246932SUSE.SUSELinuxEnterpriseServer12SP2_022rs5jcyhyac

이 폴더의 이름은 나중에 약간 변경 될 수 있습니다. Linux 배포판의 이름을 딴 폴더를 찾으십시오.

당신의 집은 아래에있을 것입니다 LocalState\rootfs\home

이 정보의 대부분은 Windows의 Ubuntu Bash 파일 및 Bash의 Windows 시스템 드라이브에 액세스하는 방법 에서 얻었 습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.