Bạn đã từng cần tạo một hoặc nhiều thư mục một cách nhanh chóng trên hệ điều hành Linux nhưng lại bối rối không biết bắt đầu từ đâu? Hay bạn đã nghe qua về lệnh mkdir nhưng chưa thực sự hiểu rõ sức mạnh và các tùy chọn của nó? Đây là một tình huống rất phổ biến, đặc biệt với những người dùng mới bắt đầu hành trình làm quen với Linux. Việc không nắm vững các lệnh cơ bản như mkdir có thể khiến quá trình quản lý tập tin và thư mục trở nên chậm chạp và kém hiệu quả.
Bài viết này chính là giải pháp dành cho bạn. Chúng ta sẽ cùng nhau đi sâu vào tìm hiểu chi tiết về lệnh mkdir (make directory), một trong những công cụ không thể thiếu trong bộ lệnh của Linux. Nội dung sẽ bao gồm từ định nghĩa, chức năng chính, cú pháp chuẩn cho đến các tùy chọn nâng cao giúp bạn làm chủ công cụ này. Hơn nữa, bài viết sẽ cung cấp các ví dụ minh họa trực quan, các ứng dụng thực tế trong công việc và những mẹo hữu ích để bạn sử dụng lệnh mkdir một cách hiệu quả và chuyên nghiệp nhất.
Cú pháp cơ bản của lệnh mkdir trong Linux
Để bắt đầu hành trình làm chủ dòng lệnh, việc đầu tiên và quan trọng nhất là hiểu rõ cú pháp của từng lệnh. Với mkdir, cú pháp của nó rất đơn giản và dễ nhớ, giúp người dùng có thể nhanh chóng tạo ra các thư mục mới mà không tốn nhiều công sức.
Định nghĩa và chức năng chính
mkdir là viết tắt của cụm từ “make directory” (tạo thư mục). Đúng như tên gọi, chức năng chính và duy nhất của lệnh này là tạo ra một hoặc nhiều thư mục mới trong hệ thống tập tin của Linux. Đây là một lệnh nền tảng mà bất kỳ quản trị viên hệ thống, lập trình viên hay người dùng Linux nào cũng cần phải thành thạo. Việc tổ chức các tệp tin vào trong các thư mục giúp cho cấu trúc dữ liệu trở nên gọn gàng, logic và dễ dàng quản lý hơn rất nhiều. Thay vì phải sử dụng giao diện đồ họa (GUI) vốn có thể chậm chạp, mkdir cho phép bạn thực hiện công việc này ngay lập tức chỉ với một dòng lệnh ngắn gọn.
Cú pháp chuẩn của mkdir
Cú pháp của lệnh mkdir cực kỳ trực quan. Bạn chỉ cần gõ tên lệnh, theo sau là các tùy chọn (nếu có) và cuối cùng là tên của thư mục bạn muốn tạo.
Cú pháp chung như sau:
mkdir [tùy chọn] tên_thư_mục_1 [tên_thư_mục_2] ...
Trong đó:
[tùy chọn] (options): Là các tham số bổ sung để thay đổi hành vi mặc định của lệnh. Chúng ta sẽ tìm hiểu kỹ hơn về các tùy chọn phổ biến ở phần sau.
tên_thư_mục: Là tên của thư mục bạn muốn tạo. Bạn có thể tạo nhiều thư mục cùng một lúc bằng cách liệt kê các tên thư mục cách nhau bởi một khoảng trắng.
Ví dụ, để tạo một thư mục có tên là du-an-moi, bạn chỉ cần gõ lệnh: mkdir du-an-moi. Hệ thống sẽ ngay lập tức tạo ra một thư mục rỗng với tên đó tại vị trí làm việc hiện tại của bạn.

Các tùy chọn phổ biến khi sử dụng mkdir
Lệnh mkdir không chỉ dừng lại ở việc tạo một thư mục đơn lẻ. Sức mạnh thực sự của nó nằm ở các tùy chọn đi kèm, cho phép bạn thực hiện các tác vụ phức tạp hơn một cách dễ dàng. Việc nắm vững các tùy chọn này sẽ giúp bạn tiết kiệm thời gian và tự động hóa công việc hiệu quả.
Tạo thư mục con đệ quy với -p
Đây là một trong những tùy chọn hữu ích và được sử dụng nhiều nhất của mkdir. Tùy chọn -p (viết tắt của –parents) cho phép bạn tạo một lúc cả thư mục cha lẫn thư mục con trong một đường dẫn, ngay cả khi các thư mục cha chưa tồn tại.
Hãy tưởng tượng bạn cần tạo một cấu trúc thư mục như sau: /home/user/du-an/phien-ban-1/source. Nếu bạn dùng lệnh mkdir /home/user/du-an/phien-ban-1/source mà thư mục du-an hoặc phien-ban-1 chưa có, hệ thống sẽ báo lỗi “No such file or directory”.
Thay vào đó, với tùy chọn -p, bạn chỉ cần chạy một lệnh duy nhất:
mkdir -p /home/user/du-an/phien-ban-1/source
Lệnh này sẽ tự động kiểm tra và tạo ra các thư mục du-an, phien-ban-1 nếu chúng chưa tồn tại, sau đó mới tạo thư mục source cuối cùng. Điều này cực kỳ tiện lợi khi bạn cần thiết lập cấu trúc thư mục phức tạp cho các dự án mới.

Đặt quyền truy cập với -m
Bảo mật là một yếu tố quan trọng trong Linux. Khi tạo một thư mục mới, bạn có thể muốn thiết lập quyền truy cập (permission) cụ thể cho nó ngay lập tức. Tùy chọn -m (viết tắt của –mode) cho phép bạn làm điều này.
Quyền truy cập trong Linux thường được biểu diễn bằng các con số (ví dụ: 755, 777). Bạn có thể sử dụng tùy chọn -m kèm theo mã quyền mà bạn mong muốn.
Ví dụ, để tạo một thư mục tên data-rieng-tu và chỉ cho phép chủ sở hữu có toàn quyền (đọc, ghi, thực thi), trong khi các nhóm và người dùng khác chỉ có quyền đọc và thực thi, bạn có thể dùng lệnh:
mkdir -m 755 data-rieng-tu
Con số 755 ở đây quy định quyền truy cập cụ thể, giúp bạn bảo vệ dữ liệu ngay từ khi thư mục được tạo ra mà không cần phải dùng thêm lệnh chmod sau đó.
Các tùy chọn hỗ trợ khác
Ngoài -p và -m, mkdir còn có một vài tùy chọn khác cũng rất hữu ích trong một số trường hợp:
-v (–verbose): Tùy chọn này sẽ hiển thị một thông báo cho mỗi thư mục được tạo. Điều này rất hữu ích khi bạn tạo nhiều thư mục hoặc sử dụng tùy chọn -p, giúp bạn xác nhận rằng tất cả các thư mục mong muốn đã được tạo thành công. Ví dụ: mkdir -v -p project/src/images sẽ in ra “mkdir: created directory ‘project'”, “mkdir: created directory ‘project/src'”, và “mkdir: created directory ‘project/src/images'”.
--help: Nếu bạn quên mất một tùy chọn nào đó, chỉ cần gõ mkdir --help. Lệnh này sẽ hiển thị một danh sách đầy đủ các tùy chọn có sẵn cùng với mô tả ngắn gọn về chức năng của chúng.
--version: Hiển thị thông tin phiên bản của mkdir.
Việc kết hợp các tùy chọn này giúp bạn tùy chỉnh lệnh mkdir một cách linh hoạt để đáp ứng chính xác nhu cầu công việc của mình.

Ví dụ minh họa cách tạo thư mục mới bằng mkdir
Lý thuyết sẽ trở nên dễ hiểu hơn rất nhiều khi đi kèm với các ví dụ thực tế. Dưới đây là một số kịch bản sử dụng lệnh mkdir từ cơ bản đến nâng cao để bạn có thể hình dung rõ hơn về cách hoạt động của nó.
Ví dụ đơn giản tạo thư mục cơ bản
Đây là trường hợp sử dụng phổ biến nhất. Giả sử bạn đang ở trong thư mục home của mình và muốn tạo một thư mục mới để lưu trữ tài liệu.
Tạo một thư mục:
Để tạo một thư mục có tên tai-lieu, bạn chỉ cần mở terminal và gõ:
mkdir tai-lieu
Sau khi thực thi lệnh này, nếu bạn dùng lệnh ls để liệt kê các tệp và thư mục, bạn sẽ thấy tai-lieu xuất hiện trong danh sách.
Tạo nhiều thư mục cùng lúc:
Nếu bạn muốn tạo nhiều thư mục riêng biệt, chẳng hạn như hinh-anh, video, và am-nhac, bạn có thể liệt kê tất cả chúng trong cùng một lệnh:
mkdir hinh-anh video am-nhac
Lệnh này sẽ tạo ra ba thư mục riêng biệt ngang cấp với nhau tại vị trí hiện tại của bạn. Đây là cách làm nhanh gọn hơn rất nhiều so với việc gõ lệnh mkdir ba lần.

Ví dụ tạo thư mục con đệ quy với quyền truy cập cụ thể
Bây giờ, hãy đến với một ví dụ phức tạp hơn, kết hợp sức mạnh của cả hai tùy chọn -p và -m. Kịch bản này rất phổ biến khi bạn thiết lập một dự án phát triển web hoặc phần mềm mới.
Giả sử bạn cần tạo cấu trúc thư mục cho một dự án website mới tại đường dẫn /var/www/my-new-project. Cấu trúc này cần bao gồm các thư mục con là public, src, và logs. Trong đó, thư mục public cần có quyền 755 để web server có thể truy cập, còn thư mục logs cần quyền 777 để các ứng dụng có thể ghi file log một cách tự do.
Thay vì phải tạo từng thư mục rồi sau đó dùng chmod để đổi quyền, bạn có thể thực hiện tất cả chỉ bằng một vài dòng lệnh mkdir:
- Tạo cấu trúc chính và thư mục public với quyền 755:
mkdir -p -m 755 /var/www/my-new-project/public
Lệnh này sử dụng -p để tạo cả my-new-project và public. Đồng thời, -m 755 đảm bảo thư mục public được tạo ra với quyền truy cập phù hợp.
- Tạo các thư mục còn lại:
mkdir /var/www/my-new-project/src
mkdir -m 777 /var/www/my-new-project/logs
Ở đây, chúng ta tạo thêm thư mục src (với quyền mặc định) và thư mục logs với quyền 777.
Qua ví dụ này, bạn có thể thấy việc kết hợp các tùy chọn giúp lệnh mkdir trở thành một công cụ mạnh mẽ để khởi tạo môi trường làm việc một cách nhanh chóng và chính xác.

Ứng dụng thực tế của lệnh mkdir trong quản lý tập tin và thư mục
Lệnh mkdir không chỉ là một công cụ lý thuyết mà còn có rất nhiều ứng dụng quan trọng trong công việc hàng ngày của người dùng Linux, đặc biệt là các quản trị viên hệ thống và lập trình viên. Việc sử dụng thành thạo lệnh này giúp tối ưu hóa quy trình làm việc và đảm bảo hệ thống được tổ chức một cách khoa học.
Tổ chức cấu trúc thư mục dự án phần mềm:
Khi bắt đầu một dự án mới, việc đầu tiên luôn là tạo ra một cấu trúc thư mục logic. Một cấu trúc tốt giúp việc tìm kiếm mã nguồn, tài liệu, tài nguyên và các tệp cấu hình trở nên dễ dàng hơn. Ví dụ, một dự án web điển hình có thể có cấu trúc như project/src (mã nguồn), project/dist (bản build), project/tests (kiểm thử), project/docs (tài liệu). Sử dụng lệnh mkdir -p project/{src,dist,tests,docs} (cú pháp brace expansion) có thể tạo ra toàn bộ cấu trúc này chỉ trong một nốt nhạc, giúp bạn nhanh chóng bắt tay vào công việc chính.

Tạo cấu trúc thư mục cho backup, lưu trữ dữ liệu:
Đối với quản trị viên hệ thống, việc sao lưu dữ liệu là nhiệm vụ tối quan trọng. Lệnh mkdir thường được sử dụng trong các kịch bản (script) tự động hóa để tạo ra các thư mục lưu trữ backup theo ngày, tháng, năm. Ví dụ, một script có thể chạy lệnh mkdir -p /backups/$(date +%Y-%m-%d) mỗi ngày để tạo một thư mục mới với tên là ngày hiện tại, đảm bảo các bản sao lưu được tổ chức gọn gàng và không bị ghi đè lên nhau.
Phân quyền thư mục khi làm việc nhóm trên Linux server:
Trong một môi trường có nhiều người dùng, ví dụ như một máy chủ web hoặc máy chủ phát triển, việc phân quyền thư mục là cực kỳ cần thiết. Khi một người dùng mới được thêm vào hệ thống, quản trị viên có thể sử dụng mkdir kết hợp với tùy chọn -m để tạo thư mục cá nhân cho họ (/home/new_user) và thiết lập quyền truy cập phù hợp (ví dụ 700 hoặc 750). Điều này đảm bảo rằng mỗi người dùng chỉ có thể truy cập vào dữ liệu của mình, tăng cường tính bảo mật và sự riêng tư cho toàn bộ hệ thống.
Lưu ý và mẹo sử dụng hiệu quả lệnh mkdir
Để sử dụng mkdir như một chuyên gia, bạn không chỉ cần biết cú pháp mà còn cần nắm được những mẹo và lưu ý quan trọng để tránh các lỗi không đáng có và tối ưu hóa quy trình làm việc.
Tránh lỗi tạo trùng tên thư mục
Một trong những lỗi cơ bản nhất khi dùng mkdir là cố gắng tạo một thư mục đã tồn tại. Khi đó, terminal sẽ trả về lỗi “mkdir: cannot create directory ‘tên_thư_mục’: File exists”. Để tránh điều này, bạn có thể kết hợp mkdir với một câu lệnh kiểm tra.
Trong một bash script, bạn có thể viết như sau:
DIRECTORY="my-folder"
if [ ! -d "$DIRECTORY" ]; then
mkdir "$DIRECTORY"
echo "Thư mục $DIRECTORY đã được tạo."
else
echo "Thư mục $DIRECTORY đã tồn tại."
fi
Một mẹo nhanh hơn là sử dụng tùy chọn -p. Khi bạn dùng mkdir -p ten_thu_muc, nếu thư mục đó đã tồn tại, lệnh sẽ không báo lỗi và lặng lẽ bỏ qua. Đây là một cách an toàn và hiệu quả để đảm bảo thư mục bạn cần luôn có sẵn mà không làm gián đoạn kịch bản tự động hóa.

Sử dụng quyền hợp lý để bảo mật
Tùy chọn -m rất mạnh mẽ, nhưng sức mạnh luôn đi kèm với trách nhiệm. Việc gán quyền không hợp lý có thể tạo ra các lỗ hổng bảo mật nghiêm trọng. Ví dụ, việc tạo một thư mục chứa dữ liệu nhạy cảm với quyền 777 (-m 777) cho phép bất kỳ ai trên hệ thống cũng có thể đọc, ghi và xóa dữ liệu bên trong.
Hãy tuân thủ nguyên tắc “đặc quyền tối thiểu” (Principle of Least Privilege): chỉ cấp phát những quyền hạn thực sự cần thiết.
755: Chủ sở hữu có toàn quyền, những người khác chỉ được đọc và thực thi. Phù hợp cho các thư mục web công khai.
700: Chỉ chủ sở hữu có quyền. Lý tưởng cho các thư mục cá nhân, riêng tư (/home/user).
770: Chủ sở hữu và nhóm sở hữu có toàn quyền, những người khác không có quyền nào. Tốt cho các thư mục dự án làm việc nhóm.
Kết hợp với script để tự động hóa công việc
Sức mạnh thực sự của các công cụ dòng lệnh như mkdir được phát huy tối đa khi kết hợp chúng vào trong các script tự động. Bạn có thể viết một bash script đơn giản để khởi tạo toàn bộ cấu trúc thư mục cho một loại dự án cụ thể.
Ví dụ, script tạo dự án web cơ bản:
#!/bin/bash
PROJECT_NAME=$1
mkdir -p "$PROJECT_NAME"/{public/css,public/js,src,private/logs}
chmod 777 "$PROJECT_NAME"/private/logs
echo "Cấu trúc dự án $PROJECT_NAME đã được tạo."
Lưu script này lại (ví dụ: create_project.sh), và bạn chỉ cần chạy ./create_project.sh ten_du_an_moi là toàn bộ cấu trúc thư mục cần thiết sẽ được tạo ra ngay lập tức.
Những vấn đề thường gặp khi sử dụng mkdir
Ngay cả với một lệnh đơn giản như mkdir, người dùng mới đôi khi vẫn gặp phải một số lỗi phổ biến. Hiểu rõ nguyên nhân và cách khắc phục sẽ giúp bạn xử lý tình huống một cách nhanh chóng và tự tin hơn.
Lỗi “Permission denied” khi tạo thư mục
Đây có lẽ là lỗi phổ biến nhất. Bạn chạy lệnh mkdir ten_thu_muc và nhận lại thông báo “mkdir: cannot create directory ‘ten_thu_muc’: Permission denied”.
- Nguyên nhân: Lỗi này xảy ra khi bạn không có quyền ghi (write permission) vào thư mục cha nơi bạn đang cố gắng tạo thư mục mới. Ví dụ, bạn đang ở thư mục
/ (root directory) và cố gắng tạo thư mục mà không phải là quản trị viên (root). Hầu hết các thư mục hệ thống đều được bảo vệ và chỉ người dùng root mới có quyền thay đổi.
- Cách xử lý:
- Kiểm tra quyền: Dùng lệnh
ls -ld . để xem quyền của thư mục hiện tại. Bạn cần thấy ký tự w trong phần quyền của user hoặc group của bạn.
- Sử dụng
sudo: Nếu bạn có quyền quản trị, cách đơn giản nhất là thêm sudo vào trước lệnh của bạn: sudo mkdir ten_thu_muc. Lệnh này sẽ thực thi mkdir với quyền của người dùng root.
- Chuyển đến thư mục khác: Nếu bạn không có quyền
sudo, hãy đảm bảo bạn đang làm việc trong thư mục nhà của mình (/home/ten_ban) hoặc các thư mục khác mà bạn có quyền ghi.

Lỗi thư mục đã tồn tại
Lỗi này được thể hiện qua thông báo “mkdir: cannot create directory ‘ten_thu_muc’: File exists”.
- Nguyên nhân: Rất đơn giản, một tệp hoặc một thư mục với cái tên bạn muốn tạo đã tồn tại ở vị trí đó. Linux không cho phép hai tệp hoặc thư mục có cùng tên trong cùng một cấp thư mục.
- Cách xử lý:
- Kiểm tra: Dùng lệnh ls để xác nhận xem tên đó đã được sử dụng hay chưa.
- Chọn tên khác: Cách đơn giản nhất là chọn một cái tên khác cho thư mục của bạn.
- Sử dụng tùy chọn
-p: Như đã đề cập ở trên, nếu bạn dùng mkdir -p ten_thu_muc, lệnh sẽ không báo lỗi nếu thư mục đã tồn tại. Đây là cách làm “an toàn” trong các kịch bản tự động, giúp script tiếp tục chạy mà không bị dừng lại bởi lỗi này.
Những lưu ý khi sử dụng lệnh mkdir hiệu quả
Để nâng cao kỹ năng và hiệu suất làm việc với mkdir, hãy ghi nhớ những lưu ý quan trọng sau. Đây là những kinh nghiệm được đúc kết từ thực tế sử dụng, giúp bạn tránh sai lầm và làm việc chuyên nghiệp hơn.
- Luôn kiểm tra kỹ đường dẫn trước khi tạo: Đặc biệt là khi bạn sử dụng đường dẫn tuyệt đối (ví dụ:
/var/www/html/project). Một sai lầm nhỏ trong đường dẫn có thể khiến thư mục được tạo ra ở một nơi hoàn toàn sai, gây khó khăn cho việc quản lý và dọn dẹp sau này. Hãy dùng lệnh pwd (print working directory) để xác nhận vị trí hiện tại của bạn trước khi tạo thư mục với đường dẫn tương đối.
- Sử dụng tùy chọn -p để tránh lỗi thư mục cha chưa tồn tại: Hãy tập thói quen sử dụng
mkdir -p thay vì mkdir khi bạn tạo một cấu trúc thư mục có nhiều cấp. Nó không chỉ giúp bạn tạo các thư mục lồng nhau một cách dễ dàng mà còn hoạt động như một biện pháp an toàn, bỏ qua việc tạo nếu thư mục đã tồn tại và không báo lỗi. Điều này làm cho các lệnh và script của bạn trở nên mạnh mẽ và linh hoạt hơn.
- Đặt quyền truy cập phù hợp để bảo vệ dữ liệu: Đừng bao giờ xem nhẹ việc phân quyền. Ngay khi tạo thư mục, hãy suy nghĩ về mục đích sử dụng của nó: Ai cần truy cập? Mức độ truy cập là gì (chỉ đọc, hay cả đọc và ghi)? Sử dụng tùy chọn
-m để thiết lập quyền ngay từ đầu là một thói quen tốt, giúp tăng cường bảo mật cho hệ thống của bạn và tránh các sự cố rò rỉ dữ liệu không đáng có.
- Kết hợp mkdir với các lệnh quản lý khác như chmod, chown: Mặc dù
mkdir -m rất tiện lợi, nhưng đôi khi bạn cần các thao tác phức tạp hơn sau khi tạo thư mục. Ví dụ, sau khi tạo thư mục dự án, bạn có thể cần thay đổi chủ sở hữu (owner) và nhóm sở hữu (group) của nó. Hãy kết hợp mkdir với chown (change owner) và chmod (change mode) để hoàn thiện việc thiết lập môi trường. Ví dụ: mkdir project && chown user:group project.

Kết luận
Qua bài viết chi tiết này, chúng ta đã cùng nhau khám phá từ những điều cơ bản nhất đến các kỹ thuật nâng cao của lệnh mkdir trong Linux. Từ cú pháp đơn giản mkdir ten_thu_muc cho đến sức mạnh của các tùy chọn như -p để tạo cấu trúc đệ quy và -m để thiết lập quyền truy cập, bạn có thể thấy mkdir không chỉ là một lệnh để tạo thư mục, mà là một công cụ nền tảng cho việc tổ chức và quản lý hệ thống tệp một cách hiệu quả và khoa học.
Việc nắm vững mkdir và các ứng dụng thực tế của nó sẽ giúp bạn tiết kiệm đáng kể thời gian và công sức, dù bạn là một lập trình viên đang thiết lập dự án mới, một quản trị viên hệ thống đang tự động hóa các tác vụ sao lưu, hay chỉ đơn giản là một người dùng muốn sắp xếp dữ liệu cá nhân một cách gọn gàng.
Cách tốt nhất để thành thạo bất kỳ công cụ dòng lệnh nào là thông qua thực hành. Đừng ngần ngại mở terminal và thử nghiệm các ví dụ đã nêu trong bài. Hãy bắt đầu bằng việc tổ chức lại chính thư mục làm việc của bạn. Càng sử dụng thường xuyên, bạn sẽ càng thấy được sự tiện lợi và sức mạnh của nó. Hơn nữa, hãy tiếp tục tìm hiểu thêm về các lệnh liên quan như ls, cd, rmdir, chmod, và chown để có một bộ kỹ năng quản lý hệ thống Linux toàn diện.