리눅스에서 작은 조각은 무엇을합니까?


25

두 가지 인스턴스가 사용되고 있으며 각각의 기능이 궁금합니다.

  1. service=~

  2. mv ~/Desktop/Service$version.tgz $service

작은 구불 구불 한 ~무엇을합니까?

그런 다음 그 후에는 cd $service어떻게됩니까?


3
이것은 태그를받을 가치가있다. [squiggly]
cregox

3
Tilde는 쉘 전용이며 Linux 전용이 아닙니다.
David Allan Finch

@ 카와 스 : 묻습니다. 그러면받을 것입니다.
Dave Sherohman

@Dave 감사합니다! 하지만 크리스가 싫어 한 것 같습니다. 잘, 인생은 계속된다…
cregox

이것이 처음으로 요청 된 것입니까? 나는 이것을 복제본으로 닫을 것으로 예상했다.
Erik B

답변:


45

구불 구불 한 것을 "물결표"라고합니다.

홈 디렉토리로 확장됩니다.

시험

echo ~
echo $HOME

두 문장 모두 홈 디렉토리 자체를 한 줄에 넣습니다.

자세한 내용은 bash Tilde Expansion 을 참조하십시오.


8
위의 비교는 유효하지만 오해의 소지가 있습니다. 물결표는 스크립트와 명령 줄에서 셸 해석 중에 만 작동합니다. 그러나 환경 변수 $ HOME은 환경 변수가 작동하는 모든 곳에서 작동합니다.
Mei

36

"빠른 소리"는 물결표라고합니다. Linux에서 일반적으로 사용되는 홈 디렉토리를 참조하는 데 사용 됩니다/home/username . 또한 $HOME환경 변수에 저장됩니다 . ~홈 디렉토리의 위치로 확장하는 것은 파일 시스템이나 OS 자체가 아닌 쉘 (zsh 또는 bash와 같은) 또는 파일 관리자 (노틸러스와 같은)의 작업입니다.

이것을 사용하여 다른 사용자의 홈 디렉토리를 참조 할 수도 있습니다. 예를 들어, 다른 사용자의 사용자 이름이 인 경우으로 확장 된 bob홈 디렉토리를 참조 할 수 ~bob있습니다 /home/bob/.

첫 번째 예는 변수 service를로 설정 ~하므로 홈 디렉토리에 해당합니다. 이에 해당 service=/home/username하거나 service=$HOME.

두 번째 예는 파일 ~/Desktop/Service$version.tgz(또는 /home/username/Desktop/Service$version.tgz)을에 복사합니다 /home/username. 이 명령은 다음과 같습니다.

mv ~/Desktop/Service$version.tgz ~

또는

mv ~/Desktop/Service$version.tgz $HOME

또는

mv ~/Desktop/Service$version.tgz /home/username/

세 번째는 현재 작업 디렉토리 ( $PWD)를로 변경합니다 /home/username/. 이것은 다음과 같습니다.

cd /home/username/

또는

cd $HOME

3
명심해야 할 또 하나의 사항 : Tilde 확장은 쉘이나 파일 관리자의 역할이며 Linux 파일 시스템 자체의 기능이 아닙니다. 따라서 종종 구성 파일에서 작동하지 않으며 "~"주위에 따옴표를 추가하면 셸에서 확장이 중지됩니다.
Grumbel

3
또한이에 / 가정이 ~ 팽창 / [내 사용자 이름] 또는 ~을 / 집 밥 팽창 / 밥 가정해서는 안 홈 디렉토리는 반드시 / 가정에서 거짓말을하지 않는다는 것을 주목해야한다
darkliquid

@Grumbel 제안에 감사드립니다. @darkliquid의 제안을 추가해 주셔서 감사합니다 @PriceChild!
Wuffers

10

# 1 & # 2에서 ~는 홈 디렉토리이므로 qwerty 인 경우 / home / qwerty 디렉토리가됩니다. 그래서 ls ~그것을 보십시오 .

# 1의 경우 : 가변 서비스가 홈 디렉토리로 정의되는 것처럼 보입니다.

이는 # 2가 tgz 파일을 Desktop 하위 디렉토리에서 홈 디렉토리로 이동 한 후 # 3이 홈 디렉토리로 변경되었음을 의미합니다.


5

명령이 다음을 수행하는 것처럼 보입니다.

  1. service라는 변수를 홈 폴더 위치에 지정하십시오 (예 :

    /home/user
    
  2. 다음과 같이 파일을 데스크탑에서 홈 디렉토리의 최상위 레벨로 이동합니다.

    /home/user/Desktop/Service$version.tgz $service
    
  3. 그런 다음 스크립트는 디렉토리를 홈 디렉토리의 최상위 레벨로 변경합니다.

따라서 모든 스크립트는 파일을 /home/user폴더 로 이동하여 데스크탑을 정리하는 것입니다.


1

~ user도 [user]의 홈 디렉토리로 확장하므로 여기에 자신의 홈 디렉토리에 대한 바로 가기가 아닙니다 .

예 :

[guy@abox anotherdir]$ cd ~ 
[guy@abox ~]$ pwd
/home/guy
[guy@abox ~]$ cd ~john
[guy@abox john]$ pwd
/home/john
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.