Làm thế nào để tạo thư mục trong Linux với lệnh "mkdir"

Hướng dẫn này sẽ chỉ cho bạn cách tạo thư mục hoặc thư mục mới trong Linux bằng cách sử dụng dòng lệnh.

Lệnh mà bạn sử dụng để tạo thư mục là mkdir. Bài viết này cho bạn thấy cách cơ bản để tạo các thư mục trong Linux cũng như bao gồm tất cả các công tắc có sẵn.

Làm thế nào để tạo một thư mục mới

Cách đơn giản nhất để tạo thư mục mới như sau:

mkdir

Ví dụ, nếu bạn muốn tạo một thư mục trong thư mục home của bạn được gọi là test, hãy mở một cửa sổ terminal và chắc chắn rằng bạn đang ở trong thư mục home của bạn (sử dụng lệnh cd ~ ).

kiểm tra mkdir

Thay đổi quyền của Thư mục mới

Sau khi tạo thư mục mới, bạn có thể muốn đặt quyền để chỉ một người dùng nhất định có thể truy cập thư mục hoặc để một số người có thể chỉnh sửa tệp trong thư mục nhưng những người khác chỉ đọc.

Trong phần trước, tôi đã chỉ cho bạn cách tạo một thư mục có tên là test. Chạy lệnh ls sẽ cho bạn thấy các quyền cho thư mục đó:

lt -lt

Các cơ hội là bạn sẽ có một cái gì đó dọc theo những dòng này:

drwxr-xr-x 2 nhóm chủ sở hữu 4096 Mar 9 19:34 kiểm tra

Các bit chúng tôi quan tâm là chủ sở hữunhóm drwxr-xr-x

Các d cho chúng ta biết rằng kiểm tra là một thư mục.

Ba ký tự đầu tiên sau d là quyền của chủ sở hữu đối với thư mục được chỉ định bởi tên của chủ sở hữu.

Ba ký tự tiếp theo là quyền của nhóm đối với tệp được chỉ định theo tên nhóm. Một lần nữa các tùy chọn là r, w và x. The - có nghĩa là có một sự cho phép bị thiếu. Trong ví dụ trên, bất kỳ ai thuộc nhóm đều có thể truy cập thư mục và đọc các tệp nhưng không thể ghi vào thư mục.

Ba ký tự cuối cùng là các quyền mà tất cả người dùng có và như bạn có thể thấy trong ví dụ ở trên, các quyền này giống với quyền của nhóm.

Để thay đổi quyền cho một tệp hoặc thư mục, bạn có thể sử dụng lệnh chmod . Lệnh chmod cho phép bạn chỉ định 3 số đặt quyền.

Để có được một hỗn hợp các quyền bạn thêm các số với nhau. Ví dụ để có được quyền đọc và thực thi số bạn cần là 5, để có được quyền đọc và ghi số là 6 và để có được quyền ghi và thực thi số đó là 3.

Hãy nhớ rằng bạn cần phải xác định 3 số như một phần của lệnh chmod. Số đầu tiên là dành cho quyền của chủ sở hữu, số thứ hai là dành cho quyền của nhóm và số cuối cùng dành cho mọi người khác.

Ví dụ để có được quyền đầy đủ trên chủ sở hữu, hãy đọc và thực thi quyền trên nhóm và không có quyền đối với bất kỳ ai khác, hãy nhập như sau:

chmod 750 kiểm tra

Nếu bạn muốn thay đổi tên nhóm sở hữu một thư mục, hãy sử dụng lệnh chgrp.

Ví dụ, hãy tưởng tượng bạn muốn tạo một thư mục mà tất cả các kế toán trong công ty của bạn có thể truy cập.

Trước hết, hãy tạo tài khoản nhóm bằng cách gõ như sau:

tài khoản groupadd

Nếu bạn không có sự cho phép chính xác để tạo một nhóm, bạn có thể cần phải sử dụng sudo để có thêm các đặc quyền hoặc chuyển sang một tài khoản có các quyền hợp lệ bằng lệnh su .

Bây giờ bạn có thể thay đổi nhóm cho một thư mục bằng cách gõ như sau:

tài khoản chgrp

Ví dụ:

kiểm tra tài khoản chgrp

Để cung cấp cho bất kỳ ai trong nhóm tài khoản đọc, viết và thực thi quyền truy cập cũng như chủ sở hữu nhưng chỉ đọc cho tất cả mọi người khác, bạn có thể sử dụng lệnh sau:

chmod 770 kiểm tra

Để thêm người dùng vào nhóm tài khoản, có thể bạn sẽ muốn sử dụng lệnh sau:

usermod -a -G tài khoản

Lệnh trên gắn thêm nhóm tài khoản vào danh sách các nhóm thứ cấp mà người dùng có quyền truy cập.

Cách tạo thư mục và đặt quyền tại cùng một thời điểm

Bạn có thể tạo một thư mục và thiết lập quyền cho thư mục đó cùng một lúc bằng cách sử dụng lệnh sau:

mkdir -m777

Lệnh trên sẽ tạo một thư mục mà mọi người đều có quyền truy cập. Rất hiếm khi bạn muốn tạo bất kỳ thứ gì với loại quyền này.

Tạo một thư mục và bất kỳ phụ huynh nào được yêu cầu

Hãy tưởng tượng bạn muốn tạo một cấu trúc thư mục nhưng bạn không muốn tạo từng thư mục riêng lẻ cùng với cách thức và làm việc theo cách của bạn xuống một cái cây.

Ví dụ: bạn có thể đang tạo thư mục cho nhạc của mình như sau:

Nó sẽ gây phiền toái khi phải tạo thư mục rock, sau đó là thư mục alice cooper và queen và sau đó tạo thư mục rap và thư mục dr dre và sau đó là thư mục jazz và sau đó là thư mục louisjordan.

Bằng cách chỉ định chuyển đổi sau, bạn có thể tạo tất cả các thư mục mẹ khi đang di chuyển nếu chúng chưa tồn tại.

mkdir -p

Ví dụ: để tạo một trong các thư mục được liệt kê ở trên, hãy thử lệnh sau:

mkdir -p ~ / music / rock / alicecooper

Nhận xác nhận rằng một thư mục đã được tạo

Theo mặc định, lệnh mkdir không cho bạn biết thư mục bạn đang tạo đã được tạo thành công chưa. Nếu không có lỗi xuất hiện thì bạn có thể giả định nó có.

Nếu bạn muốn có được đầu ra dài dòng hơn để bạn biết những gì đã được tạo ra, hãy sử dụng công tắc sau đây.

mkdir -v

Đầu ra sẽ nằm dọc theo các dòng của mkdir: tạo thư mục / đường dẫn / đến / directoryname .

Sử dụng & # 34; mkdir & # 34; trong một Shell Script

Đôi khi bạn sẽ muốn sử dụng lệnh "mkdir" như một phần của một kịch bản lệnh shell. Ví dụ, hãy xem một kịch bản chấp nhận một đường dẫn. Khi kịch bản được thực hiện, nó sẽ tạo thư mục và thêm một tệp văn bản duy nhất có tên là "hello".

#! / bin / bash

mkdir $ @

cd $ @

chạm vào xin chào

Dòng đầu tiên nên được bao gồm trong mọi tập lệnh mà bạn viết và được sử dụng để cho thấy rằng đây thực sự là một tập lệnh BASH.

Lệnh "mkdir" được sử dụng để tạo thư mục. "$ @" ( Còn được gọi là tham số đầu vào ) ở cuối dòng thứ 2 và thứ 3 được thay thế bằng giá trị bạn chỉ định khi chạy tập lệnh.

Lệnh "cd" thay đổi vào thư mục bạn chỉ định và cuối cùng lệnh cảm ứng tạo ra một tệp rỗng có tên "hello".

Bạn có thể thử kịch bản cho chính mình. Để làm như vậy, hãy làm theo các hướng dẫn sau:

  1. Mở cửa sổ đầu cuối (nhấn Alt và T nên thực hiện)
  2. Nhập nano createhellodirectory.sh
  3. Nhập các lệnh ở trên vào trình chỉnh sửa
  4. Lưu tệp bằng cách nhấn CTRL và O cùng một lúc
  5. Thoát tệp bằng cách nhấn CTRL và X cùng một lúc
  6. Thay đổi quyền bằng cách gõ chmod + x createhellodirectory.sh
  7. Chạy tập lệnh bằng cách gõ ./createhellodirectory.sh test

Khi bạn chạy kịch bản, một thư mục có tên "test" sẽ được tạo và nếu bạn thay đổi thư mục đó ( cd test) và chạy danh sách thư mục ( ls), bạn sẽ thấy một tập tin gọi là "hello".

Cho đến nay rất tốt nhưng bây giờ hãy thử chạy bước 7 một lần nữa.

  1. Một lỗi sẽ xuất hiện cho biết rằng thư mục đã tồn tại.

Có rất nhiều điều chúng ta có thể làm để cải thiện kịch bản. Ví dụ, nếu thư mục đã tồn tại, chúng tôi không đặc biệt quan tâm miễn là nó tồn tại.

#! / bin / bash

mkdir -p $ @

cd $ @

chạm vào xin chào

Nếu bạn chỉ định -p như một phần của lệnh mkdir thì nó sẽ không lỗi nếu thư mục đã tồn tại nhưng nếu nó không tồn tại thì nó sẽ tạo ra nó.

Như là xảy ra lệnh cảm ứng sẽ tạo ra một tập tin nếu nó không tồn tại nhưng nếu nó tồn tại nó chỉ đơn giản là sửa đổi ngày truy cập cuối cùng và thời gian.

Hãy tưởng tượng câu lệnh cảm ứng đã được thay thế bằng một câu lệnh echo viết văn bản vào một tệp như sau:

#! / bin / bash

mkdir -p $ @

cd $ @

echo "hello" >> xin chào

Nếu bạn chạy lệnh "./createhellodirectory.sh test" một lần nữa và một lần nữa hiệu ứng sẽ là tập tin được gọi là "hello" trong thư mục kiểm tra sẽ phát triển lớn hơn và lớn hơn với ngày càng nhiều dòng với từ "hello" trong đó.

Bây giờ, điều này có thể hoặc có thể không như dự định nhưng chúng ta hãy nói bây giờ rằng đây không phải là hành động mong muốn. Bạn có thể viết một bài kiểm tra để đảm bảo thư mục không tồn tại trước khi bạn chạy lệnh echo như sau.

#! / bin / bash

mkdir $ @ 2> / dev / null;

nếu [$? -eq 0]; sau đó

cd $ @

echo "hello" >> xin chào

lối thoát

fi

Kịch bản trên là phương pháp ưa thích của tôi để xử lý việc tạo thư mục. Lệnh mkdir tạo thư mục được truyền dưới dạng tham số đầu vào nhưng bất kỳ đầu ra lỗi nào được gửi đến / dev / null (nghĩa là về cơ bản nghĩa là hư không).

Dòng thứ ba kiểm tra trạng thái đầu ra của lệnh trước đó là câu lệnh "mkdir" và nếu nó thành công, nó sẽ thực hiện các câu lệnh cho đến khi đạt được câu lệnh "fi".

Điều này có nghĩa là bạn có thể tạo thư mục và thực hiện tất cả những thứ bạn muốn nếu lệnh thành công. Nếu bạn muốn làm điều gì khác nếu lệnh không thành công thì bạn có thể chỉ cần nhập một câu lệnh khác như sau:

#! / bin / bash

mkdir $ @ 2> / dev / null;

nếu [$? -eq 0]; sau đó
cd $ @
echo "hello" >> xin chào
lối thoát
khác
cd $ @
echo "hello"> xin chào
lối thoát
fi

Trong kịch bản trên nếu câu lệnh mkdir hoạt động thì câu lệnh echo gửi từ "hello" đến cuối tệp có tên "hello" trong khi nếu nó không tồn tại một tệp mới sẽ được tạo ra có tên "hello" với từ " xin chào "trong đó.

Ví dụ này không đặc biệt thực tế vì bạn có thể đạt được kết quả tương tự đơn giản bằng cách luôn chạy dòng chào "hello"> echo . Điểm của ví dụ là để cho thấy rằng bạn có thể chạy lệnh "mkdir", ẩn đầu ra lỗi, kiểm tra trạng thái của lệnh để xem nó có thành công hay không và sau đó thực hiện một bộ lệnh nếu lệnh "mkdir" đã thành công và một bộ lệnh khác nếu không.