Tin tức và phân tích của tất cả các thiết bị di động

Cách sao chép tệp bằng lệnh “cài đặt” trong linux

cài đặt là một lệnh sao chép tệp linh hoạt trên Linux và macOS. Nó là hoàn hảo cho người dùng quyền lực đang tìm kiếm hiệu suất. Hãy đọc bài viết này để biết cách làm việc thông minh hơn chứ không phải chăm chỉ hơn.

Đợi đã – đây không phải là cài đặt phần mềm?

Lệnh cài đặt có thể có tên khó hiểu nhất trong tất cả các lệnh Linux. Nó không thực sự cài đặt bất kỳ phần mềm. Nếu bạn đang cố cài đặt gói phần mềm từ dòng lệnh trong Ubuntu hoặc bản phân phối dựa trên Debian khác, hãy sử dụng lệnh apt-get. Trên các bản phân phối Linux khác, thay vào đó hãy sử dụng công cụ quản lý gói của bản phân phối Linux – ví dụ: dnf trong Fedora hoặc zypper trong openSUSE.

Vậy cài đặt để làm gì?

Nói tóm lại, cài đặt kết hợp các mục với các lệnh cp (sao chép), chown (thay đổi chủ sở hữu), chmod (thay đổi chế độ), mkdir (tạo thư mục) và dải (ký hiệu dải). Nó cho phép bạn sử dụng các chức năng của tất cả những thứ này trong một hành động.

Lệnh cài đặt có thể:

Sao chép các tập tin như lệnh cp.
Chọn xem bạn có muốn ghi đè lên 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, ví dụ mkdir.
Đặt cờ quyền của người dùng trên các tệp, như lệnh chmod.
Đặt chủ sở hữu của các tệp giống như lệnh chown.
Xóa hành lý không cần thiết khỏi tệp thực thi, tương tự như lệnh thoát.

Bất chấp tất cả các chức năng này, lệnh cài đặt cũng không có nhiều vấn đề phải đối mặt.

Khi nào bạn sẽ sử dụng nó

Lệnh cài đặt dường như không được sử dụng hàng ngày. Điều này hữu ích, nhưng chỉ trong một số tình huống nhất định. Một tình huống trong đó quá trình cài đặt tự chạy là phát triển phần mềm. Giả sử bạn đang lập trình một công cụ mới. Bạn sẽ cần chạy thử nghiệm bên ngoài môi trường phát triển của mình. Để thực hiện việc này, bạn cần sao chép các tệp chương trình mới vào thư mục kiểm tra. Bạn có thể cần tạo một thư mục thử nghiệm và đặt quyền và quyền sở hữu tệp thích hợ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 nhiều lần. Lệnh cài đặt sẽ 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 công cụ mới đã sẵn sàng để triển khai, bạn có thể sử dụng lệnh cài đặt để sao chép công cụ đó với quyền thích hợp vào vị trí làm việc cuối cùng.

Thí dụ

Lập trình viên đang làm việc trên một công cụ mới 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 được kiểm tra, nó sẽ được sao chép vào /usr/local/bin để cung cấp cho tất cả người dù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 sử dụng trên máy tính của mình khi sử dụng cài đặt.

Cho đến khi sẵn sàng phát hành, nó sẽ được thử nghiệm trong thư mục có tên ~/test/ana. Các thành viên của nhóm chuyên viên máy tính 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. Lệnh cài đặt sử dụng cùng biểu diễn số của các quyền như chmod. Nhà phát triển của chúng tôi đã quyết định rằng các quyền phải được đặt thành:

Chủ sở hữu: Đọc, Viết và Thực hiện.
Nhóm: Đọc và làm.
Khác: chỉ thực hiện.

Cách sử dụng lệnh cài đặt

Thư mục làm việc của nhà phát triển hư cấu của chúng tôi là ~/work. Anh ấy đã viết một chương trình, biên dịch nó và tạo một tệp nhị phân có tên là ana. Nó đã tạo tệp cơ sở dữ liệu mà ana làm việc với, Words.db. Vì vậy, cả hai tệp đã sẵn sàng để thử nghiệm. Chúng ta hãy nhìn vào họ:

ls -l ana Words.db

Công cụ ana mà anh ấy vừa viết tạo đảo chữ cái từ cụm từ được đưa ra trên dòng lệnh. Kiểm tra xác minh khá đơn giản.

kiểm tra công cụ trong thư mục làm việc

Nhà phát triển của chúng tôi đã gọi ana bằng cụm từ “bánh quy” và mọi thứ dường như vẫn ổn. Bây giờ anh ấy muốn sao chép hai tệp này vào thư mục ~/test/ana để xác minh rằng công cụ mới hoạt động bình thường bên ngoài môi trường phát triển. Nó đưa ra lệnh sau:

install -D -v ana Words.db -t ~/test/ana

Cài đặt lệnh vào /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 của tệp trong khi nó đang thực thi.
t: thư mục đích.

Chúng ta có thể thấy rằng cài đặt tạo thư mục ~/test và sau đó tạo thư mục ~/test/ana. Các tệp được hiển thị từng cái một khi chúng được sao chép vào thư mục đích.

Việc đặt các tệp vào thư mục ~/test/ana xác nhận rằng chúng đã được sao chép chính xác.

ls -l

ls trong thư mục /test/ana

Bước tiếp theo là kiểm tra công cụ ana bằng cách gọi nó trong thư mục ~/test/ana.

công cụ kiểm tra ana trong thư mục /test/ana

Công cụ này hoạt động như mong đợi, điều đó thật tuyệt. Tuy nhiên, các quyền không chính xác. Các thành viên của nhóm chuyên viên máy tính phải có quyền đọc và thực thi và 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 đề này đơn giản bằng cách sử dụng lệnh sau. Lưu ý việc sử dụng sudo để chạy lệnh với quyền root. Các tùy chọn -o và -g và các tùy chọn yêu cầu nó. Khi chúng tôi ra lệnh, chúng tôi sẽ được yêu cầu nhập mật khẩu.

sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

lệnh cài đặt với các tùy chọn sao lưu và cài đặt quyền

Tùy chọn -b (sao lưu) sao lưu các tệp trước khi ghi đè lên chúng.
Tùy chọn -S (hậu tố) xác định hậu tố cho các tệp sao lưu. Nếu bạn không chỉ định hậu tố, ký tự ~ (dấu ngã) sẽ được sử dụng. Vui lòng cài đặt hậu tố .bak.
Chúng tôi đặt chủ sở hữu của tệp thành dave với tùy chọn -o (chủ sở hữu).
Tùy chọn -g (nhóm) yêu cầu tên nhóm. Điều này trở thành một nhóm chủ sở hữu tập tin. Nhóm chúng tôi sẽ sử dụng được gọi là geek.
Tùy chọn -m (mode) đặt chế độ tệp cho tệp bằng cách sử dụng cú pháp chmod số tiêu chuẩn.

Chúng tôi không còn cần sử dụng tùy chọn -D (tạo thư mục) vì chúng tôi biết rằng thư mục thử nghiệm đã tồn tại. Chúng tôi cũng bỏ qua tùy chọn -v (dài dòng). Xem các tệp trong thư mục ~/test/ana của chúng tôi cho chúng tôi biết chi tiết về tệp:

ls -l

ls trong thư mục /test/ana

Đ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 tin đã được sao chép vào thư mục thử nghiệm.
Quyền đã được đặt chính xác.
dave sở hữu các tập tin.
Nhóm chuyên viên máy tính là một nhóm chủ sở hữu của hai tệp.
Mỗi tệp có tên ana.bak và Words.db.bak đã được sao lưu.

Tất cả điều này đã đạt được với một lệnh duy nhất. Ngăn nắp.

Nhà phát triển của chúng tôi thực hiện các thay đổi cuối cùng đối với công cụ và biên dịch lại. Các tệp đã thay đổi phải được sao chép vào thư mục ~/test/ana từ thư mục ~/work. Chúng ta có thể làm điều này với tùy chọn -C (so sánh). 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

lệnh cài đặt với tùy chọn so sánh -C

Xem các tệp trong thư mục đích cho chúng tôi thấy rằng kích thước của tệp ana đã thay đổi. Nó lớn hơn ana.bakfile. Dấu thời gian trên ana cũng đã thay đổi. Những thay đổi này là do một phiên bản mới của tệp đã được sao chép tại đây.

ls -l

ls trong /test/ana bằng công cụ kiểm tra foana

Kích thước tệp và dấu thời gian của Words.db không thay đổi. Không có thay đổi nào được thực hiện đối với tệp Words.db, vì vậy tệp này không được sao chép. Trong một dự án có nhiều tệp, tùy chọn -C (so sánh) có thể giúp bạn tiết kiệm rất nhiều thời gian và ổ cứng bằng cách chỉ sao chép các tệp đã thay đổi.

Nhà phát triển đã kiểm tra lại rằng công cụ ana vẫn hoạt động.

Đã đến lúc sử dụng cài đặt để sao chép các tệp vào thư mục /usr/local/bin. Điều này sẽ cung cấp công cụ mới cho tất cả người dùng PC Linux đó. Chúng tôi biết rằng /usr/local/bin tồn tại, vì vậy chúng tôi không cần tạo thư mục đó. Chúng tôi có thể sử dụng một 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 tùy chọn -C (so sánh) vì chưa có bản sao nào của các tệp này trong thư mục đích nên không có gì để so sánh. Tương tự, không có gì để sao lưu, vì vậy chúng ta có thể loại bỏ tùy chọn -b (sao lưu) và tùy chọn -S (hậu tố).

sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin

cài đặt các tệp sao chép vào/usr/local/bin

Chúng tôi có thể liệt kê rằng các tệp đã đến /usr/local/bin:

ls -l

ls từ /usr/local/bin

Cuối cùng, hãy thay đổi thư mục thành thư mục chính của chúng ta và xem liệu chúng ta có thể gọi công cụ mới của mình từ đó không.

kiểm tra khả năng sử dụng

Lưu ý rằng chúng ta không cần thêm ana vào trước ./, có nghĩa là nó chạy từ /usr/local/bin. Nhiệm vụ hoàn thành.

Chúng tôi đã đề cập rằng quá trình cài đặt có thể xóa các bảng biểu tượng dư thừa và hành lý khác khỏi 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 bên dưới không bao gồm từ Words.db. Điều này là do Words.db là tệp cơ sở dữ liệu chứ 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 (dự phòng) và tùy chọn -S (hậu tố) với chữ ‘S’ viết hoa.

sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin

tùy chọn cài đặt với tùy chọn dải -s

Đặt các tệp vào /usr/local/bin cho phép chúng tôi so sánh kích thước của tệp ana với phiên bản sao lưu của nó. Tệp ana đã được giảm xuống gần 60% kích thước trước đó.

ls -l /usr/local/bin

ls trong thư mục làm việc

Tóm tắt

Lệnh cài đặt dành cho mục đích sử dụng 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ể là tháng này qua tháng khác. Tuy nhiên, lệnh cài đặt là một công cụ tốt để biết và có trong kho thủ thuật của bạn. Trong những tình huống mà bạn cần nó, nó sẽ thưởng cho đường cong học tập của bạn với hiệu quả tăng lên, sự đơn giản và đơn giản là ít lần nhấn phím hơn.

Mục lục