Tôi có hai phiên bản của nó đang được sử dụng và tôi tự hỏi mỗi cái làm gì:
service=~
mv ~/Desktop/Service$version.tgz $service
Những gì nhỏ bé nguệch ngoạc ~
làm gì?
Sau đó, sau đó, sẽ cd $service
làm gì?
Tôi có hai phiên bản của nó đang được sử dụng và tôi tự hỏi mỗi cái làm gì:
service=~
mv ~/Desktop/Service$version.tgz $service
Những gì nhỏ bé nguệch ngoạc ~
làm gì?
Sau đó, sau đó, sẽ cd $service
làm gì?
Câu trả lời:
Điều nguệch ngoạc được gọi là "dấu ngã".
Nó mở rộng đến thư mục nhà của bạn.
Thử
echo ~
echo $HOME
Cả hai câu lệnh đều tự đặt thư mục nhà của bạn trên một dòng ..
Xem bash Tilde Expansion để biết chi tiết.
"Squiggly" được gọi là dấu ngã. Nó được sử dụng để chỉ thư mục chính của bạn trên Linux, thông thường /home/username
. Nó cũng được lưu trữ trong $HOME
biến môi trường. Mở rộng ~
vị trí của thư mục chính là công việc của trình bao (như zsh hoặc bash) hoặc trình quản lý tệp (như Nautilus) chứ không phải hệ thống tệp hoặc hệ điều hành của chính nó.
Bạn cũng có thể sử dụng điều này để tham khảo thư mục nhà của người dùng khác. Ví dụ: nếu tên người dùng của người dùng khác là bob
, bạn có thể tham khảo thư mục chính của họ ~bob
, sẽ được mở rộng thành /home/bob/
.
Ví dụ đầu tiên bạn đã đưa ra bộ biến service
đến ~
, vì vậy nó tương ứng với thư mục chính của bạn. Điều này tương đương với service=/home/username
hoặc service=$HOME
.
Ví dụ thứ hai sao chép tệp ~/Desktop/Service$version.tgz
(hoặc /home/username/Desktop/Service$version.tgz
) sang /home/username
. Lệnh này tương đương với:
mv ~/Desktop/Service$version.tgz ~
hoặc là
mv ~/Desktop/Service$version.tgz $HOME
hoặc là
mv ~/Desktop/Service$version.tgz /home/username/
Thứ ba sẽ thay đổi thư mục làm việc hiện tại ( $PWD
) thành /home/username/
. Điều này tương đương với:
cd /home/username/
hoặc là
cd $HOME
Trong cả # 1 & # 2: ~ là thư mục chính của bạn, vì vậy nếu bạn là qwerty, nó có thể sẽ là thư mục / home / qwerty. Vì vậy, hãy thử ls ~
để thấy rằng.
Đối với # 1: đối với tôi có vẻ như dịch vụ biến đang được xác định là thư mục chính của bạn.
Điều đó có nghĩa là sau khi # 2 đã chuyển tệp tgz từ thư mục con Desktop sang thư mục chính của bạn, # 3 sau đó thay đổi sang thư mục chính.
Có vẻ như các lệnh đang làm như sau.
Chỉ định một biến được gọi là dịch vụ cho vị trí thư mục nhà của bạn, ví dụ:
/home/user
Nó di chuyển tệp từ máy tính để bàn của bạn lên cấp cao nhất của thư mục chính của bạn, ví dụ:
/home/user/Desktop/Service$version.tgz $service
Tập lệnh sau đó thay đổi thư mục lên cấp cao nhất của thư mục chính.
Vì vậy, tất cả các tập lệnh đang làm chỉ là làm sạch máy tính để bàn của bạn bằng cách di chuyển tệp vào /home/user
thư mục của bạn thay vào đó.