6 ví dụ về lệnh mkdir trên Centos / Ubuntu / Debian / Fedora
Lệnh mkdir thường được sử dụng để tạo thư mục, bài viết này sẽ nêu ra những ví dụ cơ bản để người mới bắt đầu làm việc với hệ thống Linux một cách tự tin.
Lệnh mkdir là gì?
Là người dùng Linux, chúng ta sử dụng các tệp tin và thư mục hàng ngày. Tệp tin cho phép chúng ta lưu trữ dữ liệu quan trọng trong khi thư mục cho phép chúng ta tổ chức tệp tin một cách hợp lý. Ngoài ra, chúng ta thường xây dựng cấu trúc thư mục theo hình thức phân cấp để tổ chức nội dung một cách tốt hơn.
Như tên gọi của nó, lệnh mkdir được sử dụng để tạo một thư mục có tên tại một đường dẫn cụ thể. Nó cũng cho phép chúng ta tạo một hoặc nhiều thư mục cùng một lúc với các quyền truy cập tệp tin yêu cầu.
Chúng ta cần lưu ý rằng để sử dụng lệnh mkdir, người dùng phải có quyền truy cập cần thiết trên thư mục cha, nếu không, lệnh sẽ thất bại và báo lỗi "permission denied".
Tương tự như các lệnh Linux khác, cú pháp của lệnh mkdir chủ yếu được chia thành hai nhóm - tùy chọn (options) và đối số (arguments).
$ mkdir [OPTIONS] ... <DIRECTORY1> <DIRECTORY2> …
Trong cú pháp trên, các dấu ngoặc vuông ([]) biểu thị các đối số tùy chọn, trong khi các dấu ngoặc nhọn (<>) biểu thị các đối số bắt buộc.
6 cách sử dụng cơ bản của lệnh mkdir trên hệ điều hành Linux
Tạo một thư mục
Một trong những cách sử dụng cơ bản của lệnh mkdir là tạo một thư mục có tên tại một đường dẫn cụ thể. Vì vậy, hãy tạo một thư mục có tên "rpm-distros" trong thư mục làm việc hiện tại:
$ mkdir rpm-distros
Sau đó, sử dụng lệnh ls để xác minh rằng thư mục đã được tạo:
$ ls -l
Trong ví dụ trước, chúng ta đã sử dụng đường dẫn tương đối với lệnh mkdir. Tuy nhiên, lệnh này cũng hỗ trợ đường dẫn tuyệt đối. Chúng ta có thể sử dụng lệnh pwd hoặc biến môi trường pwd để tìm đường dẫn tuyệt đối của thư mục làm việc hiện tại.
Vì vậy, để tạo thư mục có tên "deb-distros" trong thư mục làm việc hiện tại bằng cách sử dụng đường dẫn tuyệt đối, ta có thể làm như sau:
$ mkdir $PWD/deb-distros
Bây giờ, hãy xác minh rằng thư mục mới đã được tạo trong thư mục làm việc hiện tại:
$ ls -l
Cách tạo thư mục trong Linux bằng lệnh mkdir
Tạo nhiều thư mục
Lệnh mkdir cho phép chúng ta nhập nhiều đường dẫn làm đối số, từ đó cho phép tạo nhiều thư mục cùng một lúc.
Hãy tạo ba thư mục bên trong thư mục "deb-distros" bằng một lệnh duy nhất:
$ mkdir deb-distros/kali deb-distros/mint deb-distros/ubuntu
Sau đó, hãy liệt kê nội dung của thư mục deb-distros như sau:
$ ls -l deb-distros
Bạn có thể thấy trong hình, lệnh mkdir đã tạo thành công nhiều thư mục.
Ví dụ tạo nhiều thư mục bằng lệnh mkdir trong Linux
Tạo nhiều thư mục nhưng sử dụng Brace Expansion
Trong ví dụ trước, chúng ta đã thấy cách tạo nhiều thư mục bên trong một thư mục khác bằng một lệnh duy nhất. Tuy nhiên, cách này không phải là hiệu quả nhất vì chúng ta phải chỉ định tên của thư mục cha, ví dụ deb-distros, cho mỗi thư mục con.
Để khắc phục hạn chế này, bạn có thể chỉ định tên của các thư mục con trong một mở rộng dấu ngoặc nhọn (brace expansion) như trong ví dụ sau, nơi bạn tạo được ba thư mục con bên trong thư mục rpm-distros:
$ mkdir rpm-distros/{alma,centos,fedora}
Ở đây, chúng ta cần lưu ý hai điểm quan trọng sau:
- Không có khoảng trắng ở cả hai bên của dấu phẩy (,).
- Chức năng mở rộng dấu ngoặc nhọn chỉ có sẵn trong Shell Bash nên phương pháp này ít di động hơn.
- Không có khoảng trắng ở cả hai bên của dấu phẩy (,).
- Chức năng mở rộng dấu ngoặc nhọn chỉ có sẵn trong Shell Bash nên phương pháp này ít di động hơn.
Tiếp đến, hãy xác minh rằng cấu trúc thư mục cần thiết đã được tạo thành công:
$ ls -l rpm-distros
Tạo nhiều thư mục bằng cách dùng brace expansion
Tạo cấu trúc thư mục con lồng vào nhau
Trong các phần trước, chúng ta đã thấy cách tạo nhiều thư mục. Tuy nhiên, phương pháp đó không hoạt động nếu chúng ta muốn tạo một cấu trúc thư mục lồng nhau. Trong trường hợp như vậy, chúng ta có thể sử dụng tùy chọn -p của lệnh để tạo thư mục cha nếu cần.
Tạo một cấu trúc thư mục con lồng nhau như sau:
$ mkdir -p rpm-distros/centos/8.x/8.1/8.1-1911
Sau đó, hãy xác minh nội dung của thư mục rpm-distros/centos theo cách đệ quy:
$ ls -1R rpm-distros/centos
Cách tạo thư mục con lồng vào nhau
Có thể thấy, lệnh đã tạo cấu trúc thư mục cần thiết mà không báo cáo lỗi cho các thư mục cha đã tồn tại. Tùy chọn này rất hữu ích khi viết các kịch bản shell. Chúng ta có thể sử dụng nó để giảm thiểu lỗi tạo thư mục có thể xảy ra do sự tồn tại của thư mục.
Tạo một thư mục với quyền truy cập
Đôi khi, chúng ta cần thay đổi quyền truy cập của thư mục ngay sau khi tạo nó. Trong trường hợp đó, chúng ta phải sử dụng hai lệnh - mkdir và chmod. Tuy nhiên, chúng ta có thể đạt được cùng kết quả bằng cách sử dụng một lệnh duy nhất. Hãy sử dụng tùy chọn -m để đặt quyền truy cập vào một thư mục trong quá trình tạo:
$ mkdir -m 777 dir-1
Bên trên, chúng ta đã sử dụng định dạng số để đặt quyền truy cập. Tương tự, chúng ta cũng có thể sử dụng định dạng văn bản. Ví dụ, chúng ta có thể đạt được cùng kết quả bằng cách sử dụng lệnh sau đây:
$ mkdir -m a=rwx dir-2
Tiếp đến, hãy sử dụng lệnh ls để tìm hiểu quyền truy cập của các thư mục:
$ ls -ld dir-2 | awk '{print $1}'
Tạo thư mục với quyền truy cập trong Linux
Bật chế độ chi tiết (verbose) với lệnh mkdir
Theo mặc định, lệnh mkdir không hiển thị bất kỳ thông báo nào trên terminal sau khi tạo thư mục. Do đó, cho đến nay chúng ta đã sử dụng lệnh ls để kiểm tra xem thư mục đã được tạo hay chưa.
Để khắc phục hạn chế này, chúng ta có thể sử dụng chế độ verbose của lệnh để hiển thị thông báo cho mỗi thư mục được tạo. Tùy chọn này cung cấp thông tin ý nghĩa khi kết hợp với tùy chọn -p:
Hãy sử dụng tùy chọn -v với lệnh để bật chế độ verbose:
$ mkdir -p -v dir-1/dir-2/dir-3/dir-4/dir-5
Sau đó, hãy quan sát đầu ra của lệnh:
Tạo thư mục với chế độ verbose
Bên trên là 6 cách dùng phổ biến với lệnh mkdir, từ cách tạo một thư mục đơn lẻ cũng như nhiều thư mục cùng một lúc đến cách đặt quyền truy cập trên thư mục trong quá trình tạo. Cuối cùng, chúng ta đã thấy cách xác nhận việc tạo thư mục bằng cách sử dụng chế độ verbose. Những ví dụ cơ bản và trực quan này sẽ giúp ích rất nhiều cho những người mới bắt đầu.