Cú pháp của mkdir là gì?

Hàm mkdir[] tạo một thư mục trống mới có tên được xác định bởi đường dẫn. Các bit cấp phép tệp trong chế độ được sửa đổi bởi mặt nạ tạo tệp của công việc và sau đó được sử dụng để đặt các bit cấp phép tệp của thư mục đang được tạo

Để biết thêm thông tin về các bit quyền trong chế độ, hãy xem chmod[]--Thay đổi quyền đối với tệp. Để biết thêm thông tin về mặt nạ tạo tệp, hãy xem umask[]--Đặt mặt nạ ủy quyền cho công việc

ID chủ sở hữu của thư mục mới được đặt thành ID người dùng hiệu quả [uid] của công việc. Nếu thư mục đang được tạo trong "root" [/], QOpenSys và các hệ thống tệp do người dùng xác định, điều sau đây sẽ áp dụng. Nếu bit S_ISGID của thư mục mẹ bị tắt, ID nhóm [GID] được đặt thành GID hiệu quả của chuỗi tạo thư mục. Nếu bit S_ISGID của thư mục mẹ được bật, ID nhóm [GID] của thư mục mới được đặt thành GID của thư mục mẹ. Đối với tất cả các hệ thống tệp khác, ID nhóm [GID] của thư mục mới được đặt thành GID của thư mục mẹ

mkdir[] đặt thời gian truy cập, thay đổi, sửa đổi và tạo cho thư mục mới. Nó cũng đặt thời gian thay đổi và sửa đổi cho thư mục chứa thư mục mới [thư mục mẹ]

Số liên kết của số liên kết thư mục mẹ được tăng thêm một. Số liên kết của thư mục mới được đặt thành 2. Thư mục mới cũng chứa một mục cho "chấm" [. ] và "chấm-chấm" [. ]

Nếu đường dẫn đặt tên cho một liên kết tượng trưng, ​​thì liên kết tượng trưng không được theo dõi và mkdir[] không thành công với lỗi [EEXIST]

Nếu các bit ở chế độ khác với các bit cho phép tệp được đặt, mkdir[] không thành công với lỗi [EINVAL]


Thông số

đường dẫn [Đầu vào] Một con trỏ tới tên đường dẫn kết thúc null của thư mục sẽ được tạo

Tham số này được giả định là được thể hiện trong CCSID [số nhận dạng bộ ký tự được mã hóa] hiện có hiệu lực cho công việc. Nếu CCSID của công việc là 65535, tham số này được coi là được thể hiện trong CCSID mặc định của công việc

Tên của thư mục mới được giả định là được thể hiện bằng ngôn ngữ và quốc gia hoặc khu vực hiện có hiệu lực đối với quy trình

Xem QlgMkdir[]--Make Directory để biết mô tả và ví dụ về việc cung cấp đường dẫn trong bất kỳ CCSID nào


chế độ [Đầu vào] Bit quyền cho thư mục mới. Bit S_ISVTX cũng có thể được chỉ định khi tạo thư mục

Xem chmod[]--Thay đổi Ủy quyền Tệp để biết chi tiết về các giá trị có thể được chỉ định cho chế độ


Chính quyền

Ghi chú. Cơ quan được thông qua không được sử dụng

Yêu cầu ủy quyền cho mkdir[] [không bao gồm QSYS. LIB, ASP QSYS độc lập. LIB và QĐLS]

Đối tượng được giới thiệu đến Quyền được yêu cầu Mỗi thư mục trong tên đường dẫn trước thư mục sẽ được tạo. *XEACCESThư mục mẹ của thư mục được tạo*WXEACCES

Yêu cầu ủy quyền cho mkdir[] trong QSYS. LIB và ASP QSYS độc lập. Hệ thống tệp LIB

Đối tượng được giới thiệu đến Quyền được yêu cầu Mỗi thư mục trong tên đường dẫn trước thư mục sẽ được tạo. *XEACCESThư mục mẹ của thư mục được tạo [khi thư mục được tạo là tệp cơ sở dữ liệu]*X và *ADDEACCES

Yêu cầu ủy quyền cho mkdir[] trong Hệ thống tệp QĐLS

Đối tượng được giới thiệu đến Quyền được yêu cầu Mỗi thư mục trong tên đường dẫn trước thư mục sẽ được tạo. *XEACCESThư mục mẹ của thư mục được tạo*CHANGEEACCES

Giá trị trả về

0mkdir[] đã thành công. Thư mục đã được tạo. -1mkdir[] không thành công. Thư mục không được tạo. Biến toàn cục errno được đặt để chỉ ra lỗi

Điều kiện lỗi

Nếu mkdir[] không thành công, errno thường chỉ ra một trong các lỗi sau. Trong một số điều kiện, errno có thể chỉ ra một lỗi khác ngoài những lỗi được liệt kê ở đây

Nếu cần tương tác với máy chủ tệp để truy cập đối tượng, errno có thể chỉ ra một trong các lỗi sau

Thông báo lỗi

Các tin nhắn sau đây có thể được gửi từ chức năng này

Thông báo IDError Thông báo TextCPE3418 ETình trạng APAR có thể xảy ra hoặc lỗi phần cứng. Đã xảy ra lỗi hệ thống tệp CPFA0D4 EFile. Số lỗi &1. [Các] Lỗi CPF3CF2 đã xảy ra trong quá trình chạy &1 API. CPF9872 EChương trình hoặc chương trình dịch vụ &1 trong thư viện &2 đã kết thúc. Mã lý do &3
  1. Chức năng này sẽ không thành công với mã lỗi [ENOTSAFE] khi tất cả các điều kiện sau đều đúng
    • Có các luồng phụ đang hoạt động trong công việc
    • Đối tượng mà chức năng này đang hoạt động nằm trong một hệ thống tệp không an toàn theo luồng. Chỉ các hệ thống tệp sau là luồng an toàn cho chức năng này
      • "Nguồn gốc" [/]
      • QOpenSys
      • Đã xác định người dùng
      • QNTC
      • QSYS. LIB
      • ASP QSYS độc lập. LIB
      • QOPT
      • Hệ thống tệp mạng
      • QFileSvr. 400

  2. Sự khác biệt về "Root" [/], QOpenSys và Hệ thống tệp do người dùng xác định

    Người dùng tạo thư mục trở thành chủ sở hữu của nó

    Bit S_ISGID của thư mục ảnh hưởng đến ID nhóm [GID] dành cho các đối tượng được tạo trong thư mục. Nếu bit S_ISGID của thư mục mẹ bị tắt, ID nhóm [GID] được đặt thành GID hiệu quả của chuỗi tạo đối tượng. Nếu bit S_ISGID của thư mục mẹ được bật, ID nhóm [GID] sẽ được sao chép từ thư mục mẹ trong đó thư mục mới đang được tạo

    Chủ sở hữu, nhóm chính và cơ quan quản lý đối tượng công khai [*OBJEXIST, *OBJMGT, *OBJALTER và *OBJREF] được sao chép từ chủ sở hữu, nhóm chính và cơ quan quản lý đối tượng công khai của thư mục mẹ. Điều này xảy ra ngay cả khi thư mục mới có chủ sở hữu khác với thư mục mẹ. Chủ sở hữu, nhóm chính và cơ quan quản lý dữ liệu công cộng [*R, *W và *X] được lấy từ các quyền được chỉ định trong chế độ [ngoại trừ những quyền cũng được đặt trong mặt nạ tạo chế độ tệp]. Thư mục mới không có bất kỳ quyền riêng tư hoặc danh sách ủy quyền nào. Nó chỉ có quyền đối với chủ sở hữu, nhóm chính và công khai

    Giá trị thuộc tính quét đối tượng tạo cho thư mục này được sao chép từ giá trị thuộc tính quét đối tượng tạo của thư mục mẹ. Để biết thêm thông tin về thuộc tính này, hãy xem Qp0lSetAttr[]--Đặt thuộc tính

    Giá trị thuộc tính kiểm tra đối tượng tạo cho thư mục này sẽ được đặt thành *SYSVAL. Để biết thêm thông tin về thuộc tính này, hãy xem Qp0lSetAttr[]--Đặt thuộc tính


  3. QSYS. LIB và ASP QSYS độc lập. Sự khác biệt của hệ thống tệp LIB

    Người dùng tạo thư mục trở thành chủ sở hữu của nó. ID nhóm được sao chép từ ID người dùng chính, nếu có

    Chủ sở hữu được trao quyền * TẤT CẢ đối tượng cho thư mục mới. Quyền đối tượng nhóm được sao chép từ hồ sơ người dùng của chủ sở hữu. Công chúng không nhận được quyền đối tượng đối với thư mục

    Các cơ quan nhóm chính được chỉ định trong chế độ sẽ không được lưu nếu không có nhóm chính nào tồn tại

    Thời gian thay đổi và sửa đổi cho thư mục chứa thư mục mới chỉ được đặt khi thư mục mới là tệp cơ sở dữ liệu

    Giá trị thuộc tính kiểm tra đối tượng tạo cho thư mục này sẽ được đặt thành *SYSVAL. Để biết thêm thông tin về thuộc tính này, hãy xem Qp0lSetAttr[]--Đặt thuộc tính


  4. Sự khác biệt của hệ thống tệp QDLS

    Người dùng tạo thư mục trở thành chủ sở hữu của nó. ID nhóm được sao chép từ thư mục mẹ trong đó thư mục mới đang được tạo

    Quyền đối tượng của chủ sở hữu được đặt thành *OBJMGT + *OBJEXIST + *OBJALTER + *OBJREF

    Nhóm chính và cơ quan đối tượng công cộng và tất cả các cơ quan khác được sao chép từ thư mục mẹ

    Chủ sở hữu, nhóm chính và cơ quan quản lý dữ liệu công khai [bao gồm *OBJOPR] được lấy từ các quyền được chỉ định trong chế độ [ngoại trừ những quyền cũng được đặt trong mặt nạ tạo chế độ tệp]

    Các cơ quan nhóm chính được chỉ định trong chế độ sẽ không được lưu nếu không có nhóm chính nào tồn tại


  5. Sự khác biệt của hệ thống tệp QOPT

    Khi ổ đĩa mà thư mục đang được tạo được định dạng ở Định dạng đĩa chung [UDF]

    • Ủy quyền được kiểm tra cho đối tượng và các thư mục trước trong tên đường dẫn tuân theo các quy tắc được mô tả trong
    • Danh sách ủy quyền số lượng lớn được kiểm tra *CHANGE quyền hạn
    • Người dùng tạo tệp trở thành chủ sở hữu của nó
    • ID nhóm được sao chép từ thư mục mẹ nơi tệp được tạo
    • Chủ sở hữu, nhóm chính và cơ quan quản lý dữ liệu công khai [*R, *W và *X] được lấy từ các quyền được chỉ định trong chế độ
    • Các dạng chữ hoa và chữ thường giống nhau khi nhập tên được giữ nguyên. Không phân biệt chữ hoa, chữ thường khi tìm tên

    Khi ổ đĩa mà thư mục đang được tạo không được định dạng ở Định dạng đĩa chung [UDF]

    • Không có quyền nào được kiểm tra trên đối tượng hoặc các thư mục trước đó trong tên đường dẫn
    • Danh sách ủy quyền số lượng lớn được kiểm tra *CHANGE quyền hạn
    • QDFTOWN trở thành chủ sở hữu của thư mục
    • Không có ID nhóm nào được gán cho thư mục
    • Các quyền được chỉ định trong chế độ bị bỏ qua. Chủ sở hữu, nhóm chính và cơ quan quản lý dữ liệu công khai được đặt thành RWX
    • Đối với các thư mục mới tạo, tên được tạo bằng chữ in hoa. Không phân biệt chữ hoa, chữ thường khi tìm tên

    Không thể tạo thư mục dưới dạng con trực tiếp của /QOPT

    Thời gian thay đổi, sửa đổi của thư mục mẹ không được cập nhật


  6. Sự khác biệt của hệ thống tệp mạng

    Truy cập cục bộ vào các thư mục từ xa thông qua Hệ thống tệp mạng có thể tạo ra kết quả không mong muốn do các điều kiện tại máy chủ. Việc tạo một thư mục có thể không thành công nếu quyền và các thuộc tính khác được lưu trữ cục bộ bởi Hệ thống tệp mạng bị hạn chế hơn so với các quyền tại máy chủ. Nỗ lực tạo tệp sau này có thể thành công khi dữ liệu được lưu trữ cục bộ đã được làm mới. [Một số tùy chọn trên lệnh Add Mounted File System [ADDMFS] xác định thời gian giữa các lần làm mới dữ liệu cục bộ. ] Quá trình tạo cũng có thể thành công sau khi hệ thống tệp đã được kết nối lại

    Nếu bạn cố gắng tạo lại một thư mục đã bị xóa gần đây, yêu cầu có thể không thành công vì dữ liệu được lưu trữ cục bộ bởi Hệ thống tệp mạng vẫn có bản ghi về sự tồn tại của thư mục. Việc tạo thành công khi dữ liệu được lưu trữ cục bộ đã được cập nhật


  7. Sự khác biệt của hệ thống tệp QNTC

    Cơ quan quản lý thư mục được kế thừa từ danh sách kiểm soát truy cập [nếu có] của thư mục mẹ. Các bit chế độ được bỏ qua

    Ngoài chức năng mkdir[] bình thường, trong hệ thống tệp QNTC, mkdir[] có thể được sử dụng để thêm thư mục máy chủ dưới cấp thư mục /QNTC. Các thư mục cho tất cả các máy chủ Windows NT® chức năng trong mạng con cục bộ được tạo tự động. Tuy nhiên, các máy chủ Windows NT bên ngoài mạng con cục bộ phải được thêm bằng cách sử dụng mkdir[] hoặc lệnh MKDIR. Ví dụ

         char new_dir[]="/QNTC/NTSRV1";
         mkdir[new_dir,NULL]
    

    sẽ thêm máy chủ NTSRV1 vào cấu trúc thư mục QNTC để truy cập các tệp và thư mục trong tương lai trên máy chủ đó

    Cũng có thể thêm máy chủ bằng cách sử dụng địa chỉ TCP/IP. Ví dụ

         char new_dir[]="/QNTC/9.130.67.24";
         mkdir[new_dir,NULL]
    

    Các thư mục được thêm bằng cách sử dụng mkdir[] trong hệ thống tệp QNTC sẽ không tồn tại trên các IPL. Do đó, mkdir[] hoặc lệnh Make Directory [MKDIR] phải được phát hành lại sau mỗi IPL hệ thống


Thông tin liên quan


Thí dụ

Ví dụ sau tạo một thư mục mới

Ghi chú. Bằng cách sử dụng các ví dụ về mã, bạn đồng ý với các điều khoản của giấy phép Mã và thông tin từ chối trách nhiệm

Cú pháp của lệnh mkdir trong Linux là gì?

thư mục chế độ mkdir -p -m. mkdir / Cú pháp

Lệnh cho mkdir là gì?

Sử dụng lệnh mkdir để tạo một hoặc nhiều thư mục được chỉ định bởi tham số Thư mục . Mỗi thư mục mới chứa các mục tiêu chuẩn dot [. ] và chấm chấm [. ]. Bạn có thể chỉ định quyền cho các thư mục mới bằng cờ -m Mode.

mkdir P là gì?

Thư mục Linux mkdir -p . Nhưng nếu nó đã tồn tại thì nó sẽ không in thông báo lỗi và sẽ di chuyển xa hơn để tạo các thư mục con. Lệnh này hữu ích nhất trong trường hợp bạn không biết liệu một thư mục có tồn tại hay không. It will create parent directory first, if it doesn't exist. But if it already exists, then it will not print an error message and will move further to create sub-directories. This command is most helpful in the case when you don't know whether a directory alredy exists or not.

Làm cách nào để sử dụng mkdir trong tập lệnh shell?

'mkdir' là lệnh shell tích hợp cơ bản của Linux để tạo thư mục hoặc thư mục mới từ thiết bị đầu cuối. Bạn có thể tạo thư mục mới bằng cách đặt tên thư mục mới bằng lệnh 'mkdir' . Nhưng nếu tên thư mục đã tồn tại trước khi thực hiện lệnh thì nó sẽ hiển thị thông báo lỗi.

Chủ Đề