![Cách sao chép tệp bằng lệnh “cài đặt” trên Linux Cách sao chép tệp bằng lệnh “cài đặt” trên Linux](https://www.howtogeek.com/wp-content/uploads/2019/03/img_5c94224b1cfd7.png)
install
là một lệnh sao chép tệp đa năng trong Linux và macOS. Nó hoàn hảo cho những người sử dụng nhiều năng lượng đang tìm kiếm sự hiệu quả. Đọc bài viết này để khám phá cách làm việc thông minh hơn – không khó hơn.
Chờ đã — Nó không phải để cài đặt phần mềm?
Các install
lệnh có thể có tên gây hiểu lầm nhất trong số các lệnh Linux. Nó không thực sự cài đặt bất kỳ phần mềm nào. Nếu bạn đang cố gắng cài đặt một gói phần mềm từ dòng lệnh trong Ubuntu hoặc một bản phân phối dựa trên Debian khác, hãy sử dụng apt-get
chỉ huy. Trên các bản phân phối Linux khác, hãy sử dụng công cụ quản lý gói của bản phân phối Linux của bạn thay thế — ví dụ: dnf
trên Fedora hoặc zypper
trên openSUSE.
Vậy cài đặt Làm gì?
Tóm lại install
kết hợp các yếu tố từ cp
(sao chép), chown
(chủ sở hữu thay đổi), chmod
(thay đổi chế độ), mkdir
(tạo thư mục), và strip
(ký hiệu dải) lệnh. Nó cho phép bạn sử dụng các chức năng từ tất cả những chức năng đó trong một hành động duy nhất.
Các install
lệnh có thể:
- Sao chép các tệp như
cp
chỉ huy. - Chọn có ghi đè các tệp hiện có hay không.
- Tạo thư mục đích nếu nó không tồn tại, như
mkdir
. - Đặt cờ cho phép người dùng của các tệp, giống như
chmod
chỉ huy. - Đặt chủ sở hữu của các tệp, giống như
chown
chỉ huy. - Loại bỏ hành lý không cần thiết khỏi các tệp thực thi, giống như
strip
chỉ huy.
Bất chấp tất cả các chức năng đó, install
lệnh không có quá nhiều tùy chọn để đối phó.
Khi nào bạn sẽ sử dụng nó
Các install
lệnh có thể sẽ không được sử dụng hàng ngày. Nó hữu ích, nhưng chỉ cho một số trường hợp nhất định. Một kịch bản trong đó install
đi vào riêng của nó là phát triển phần mềm. Giả sử bạn đang lập trình một tiện ích mới. Bạn sẽ cần thực hiện kiểm tra bên ngoài môi trường phát triển. Để làm điều đó, bạn cần sao chép các tệp chương trình mới vào một thư mục thử nghiệm. Thư mục thử nghiệm có thể cần được tạo và bạn cần đặt quyền và quyền sở hữu chính xác cho các tệp.
Bởi vì phát triển là một hoạt động lặp đi lặp lại, bạn có thể thực hiện chuỗi hành động này rất nhiều lần. Các install
lệnh thực hiện tất cả các công việc nặng nhọc cho bạn. Cuối cùng, khi tiện ích mới của bạn đã sẵn sàng được triển khai, bạn có thể sử dụng install
để sao chép nó với các quyền chính xác đến vị trí làm việc cuối cùng của nó.
Một ví dụ
Một lập trình viên chỉ đang làm việc trên một tiện ích mới như vậy, được gọi là ana
. Nó bao gồm một tệp nhị phân thực thi và một cơ sở dữ liệu. Sau khi thử nghiệm, nó phải được sao chép sang /usr/local/bin
để cung cấp cho tất cả người dùng hệ thống Linux. Bạn sẽ cần thay thế tên tệp và đường dẫn thư mục trong ví dụ của chúng tôi cho các tệp và đường dẫn bạn đang sử dụng trên máy tính của mình khi bạn sử dụng install
.
Cho đến khi nó sẵn sàng để phát hành, nó sẽ được thử nghiệm trong một thư mục có tên là ~/test/ana
. Các thành viên của geek
nhóm sẽ có quyền đọc và thực thi. Những người dùng khác cũng sẽ có quyền đọc và thực thi. Các install
lệnh sử dụng cùng một biểu diễn số cho các quyền như chmod
làm. Lập trình viên của chúng tôi đã quyết định rằng các quyền phải được đặt thành:
- Chủ đầu tư: Đọc, viết và thực thi.
- Nhóm: Đọc và thực hiện.
- Khác: Chỉ thực thi.
Làm thế nào để sử dụng install
Chỉ huy
Thư mục làm việc của lập trình viên hư cấu của chúng tôi là ~/work
. Anh ấy đã viết chương trình, biên dịch nó và tạo ra một tệp nhị phân có tên là ana
. Anh ấy đã tạo tệp cơ sở dữ liệu ana
làm việc với, Words.db
. Vì vậy, cả hai tệp đã sẵn sàng để thử nghiệm. Hãy xem chúng:
ls -l ana Words.db
Các ana
tiện ích anh ấy vừa viết tạo ra các đảo ngữ từ một cụm từ được cung cấp trên dòng lệnh. Kiểm tra xác minh là khá đơn giản.
Lập trình viên của chúng tôi đã gọi ana
với cụm từ “bánh quy” và tất cả đều có vẻ tốt. Bây giờ anh ta muốn sao chép hai tệp này vào ~/test/ana
thư mục để xem liệu tiện ích mới có hoạt động chính xác khỏi môi trường phát triển hay không. Anh ta đưa ra lệnh sau:
install -D -v ana Words.db -t ~/test/ana
Các tùy chọn được sử dụng trên dòng lệnh là:
- D: Tạo thư mục, bao gồm cả thư mục mẹ, nếu được yêu cầu.
- v: Chi tiết, liệt kê từng thư mục khi nó được tạo và từng bản sao tệp khi nó được thực hiện.
- t: Thư mục đích.
Chúng tôi có thể thấy điều đó install
tạo ra ~/test
thư mục, và sau đó tạo ~/test/ana
danh mục. Các tệp được liệt kê từng tệp một khi chúng được sao chép vào thư mục đích.
Liệt kê các tệp trong ~/test/ana
xác nhận rằng chúng đã được sao chép một cách chính xác.
ls -l
Bước tiếp theo là kiểm tra ana
tiện ích bằng cách gọi nó trong ~/test/ana
danh mục.
Tiện ích hoạt động như mong đợi, điều đó thật tuyệt vời. Tuy nhiên, các quyền không chính xác. Yêu cầu là thiết lập các thành viên của nhóm geek
để có quyền đọc và thực thi, và đối với những người dùng khác chỉ có quyền thực thi.
Chúng ta có thể giải quyết cả hai vấn đề đó khá đơn giản với lệnh sau. Lưu ý việc sử dụng sudo
để chạy lệnh với quyền root. Các -o
và -g
và các tùy chọn yêu cầu điều này. Chúng tôi sẽ được yêu cầu nhập mật khẩu khi chúng tôi ra lệnh.
sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
- Các
-b
(sao lưu) tùy chọn tạo bản sao lưu của các tệp trước khi chúng bị ghi đè. - Các
-S
(hậu tố) tùy chọn xác định hậu tố cho các tệp sao lưu. Nếu bạn không cung cấp hậu tố a~
(dấu ngã) được sử dụng. Chúng tôi đang hỏiinstall
sử dụng hậu tố của.bak
. - Chúng tôi đặt chủ sở hữu của tệp là
dave
sử dụng-o
(chủ sở hữu) tùy chọn. - Các
-g
(nhóm) tùy chọn yêu cầu tên của một nhóm. Điều này trở thành nhóm chủ sở hữu của các tệp. Nhóm chúng tôi sẽ sử dụng được gọi làgeek
. - Các
-m
(mode) tùy chọn đặt chế độ tệp cho các tệp, sử dụng tiêu chuẩnchmod
cú pháp số.
Chúng tôi không còn cần sử dụng -D
(tạo thư mục) tùy chọn, vì chúng tôi biết thư mục thử nghiệm đã tồn tại. Chúng tôi cũng đã bỏ qua -v
(tiết) tùy chọn. Liệt kê các tệp trong ~/test/ana
thư mục hiển thị cho chúng tôi chi tiết tệp:
ls -l
Điều này xác nhận rằng tất cả các yêu cầu của chúng tôi đã được đáp ứng.
- Các tệp đã được sao chép vào thư mục thử nghiệm.
- Các quyền đã được đặt chính xác.
-
dave
là chủ sở hữu của các tệp. - Các
geek
nhóm là nhóm chủ sở hữu của hai tệp. - Các bản sao lưu đã được tạo cho mỗi tệp, được gọi là ana.bak và Words.db.bak.
Tất cả những điều đó đã đạt được thông qua việc sử dụng một lệnh. Khéo léo.
Lập trình viên của chúng tôi thực hiện một số thay đổi cuối cùng đối với tiện ích và biên dịch lại. Các tệp đã thay đổi cần được sao chép vào ~/test/ana
thư mục từ ~/work
danh mục. Chúng ta có thể làm điều này bằng cách sử dụng -C
(so sánh) tùy chọn. Nếu tệp nguồn và tệp đích giống nhau, tệp nguồn sẽ không được sao chép.
sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana
Liệt kê các tệp trong thư mục đích cho chúng ta thấy rằng kích thước tệp của ana
tệp đã thay đổi. Nó lớn hơn ana.bak
tập tin. Dấu thời gian trên ana
cũng đã thay đổi. Những thay đổi này là do phiên bản mới của tệp đã được sao chép vào đây.
ls -l
Kích thước tệp và dấu thời gian của Words.db
tệp không thay đổi. Không có thay đổi nào được thực hiện đối với Words.db
tệp, vì vậy nó không được sao chép qua. Trên một dự án có nhiều tệp, -C
(so sánh) tùy chọn có thể tiết kiệm rất nhiều thời gian và ổ cứng hoạt động, bằng cách chỉ sao chép những tệp đã được thay đổi.
Lập trình viên đã kiểm tra lại rằng ana
tiện ích tiếp tục hoạt động.
Đó là thời gian để sử dụng install
để sao chép các tệp vào /usr/local/bin
danh mục. Điều này sẽ làm cho tiện ích mới có sẵn cho tất cả người dùng máy tính Linux này. Chúng ta biết rằng /usr/local/bin
tồn tại, vì vậy chúng ta không cần tạo thư mục đó. Chúng tôi có thể sử dụng phiên bản sửa đổi của lệnh cuối cùng của chúng tôi.
Chúng tôi đã thay đổi thư mục đích thành /usr/local/bin
. Chúng tôi đã xóa -C
(so sánh) tùy chọn vì chưa có bản sao của các tệp này trong thư mục đích, vì vậy không có gì để so sánh. Tương tự như vậy, không có gì để sao lưu, vì vậy chúng tôi có thể xóa -b
(sao lưu) và tùy chọn -S
(hậu tố) tùy chọn.
sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin
Chúng tôi có thể liệt kê rằng các tệp đã đến /usr/local/bin
:
ls -l
Và như một bài kiểm tra cuối cùng, hãy thay đổi thư mục thành thư mục chính của chúng tôi và xem liệu chúng tôi có thể gọi tiện ích mới của mình từ đó hay không.
Lưu ý rằng chúng tôi không cần phải nói trước ana
ra lệnh với ./
có nghĩa là nó đang chạy từ /usr/local/bin
. Hoàn thành nhiệm vụ.
Chúng tôi đã đề cập rằng cài đặt có thể loại bỏ các bảng ký hiệu thừa và các hành lý khác từ bên trong tệp nhị phân, để giảm kích thước của nó. Hãy làm điều đó ngay bây giờ. Lưu ý rằng lệnh dưới đây không bao gồm Words.db. Điều này là do Words.db là tệp cơ sở dữ liệu, không phải tệp thực thi nhị phân. Để sao chép và thu nhỏ tệp nhị phân ana
chúng ta có thể sử dụng lệnh sau. Chúng tôi đã thêm tùy chọn -s (thu nhỏ) với chữ “s” viết thường. Chúng tôi đã thêm lại tùy chọn -b (sao lưu) và tùy chọn -S (hậu tố), với chữ hoa “S.”
sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin
Liệt kê các tệp trong /usr/local/bin
cho phép chúng tôi so sánh kích thước của ana
tệp với phiên bản sao lưu của nó. Các ana
tệp đã được giảm xuống gần 60% so với kích thước trước đó của nó.
ls -l /usr/local/bin
Tóm tắt
Các install
lệnh phục vụ cho một mục đích sử dụng khá thích hợp. Đối với nhiều người, nó sẽ không được sử dụng ngày này qua ngày khác, hoặc có thể từ tháng này sang tháng khác. Mặc dù vậy, install
lệnh là một công cụ tốt để làm quen và có trong kho thủ thuật của bạn. Đối với những trường hợp khi bạn cần, nó sẽ thưởng cho đường cong học tập của bạn với sự tăng cường về hiệu quả, tính đơn giản và chỉ cần ít lần nhấn phím hơn.