Có hướng dẫn hoặc hướng dẫn về những gì tất cả các thư mục tích hợp nên được sử dụng cho? Giống như / nhà /, hoặc / net / là gì?
Hãy xem Hướng dẫn lập trình hệ thống tệp để biết thông tin cập nhật nhất và tại man hier
Terminal, nơi cung cấp "bản phác thảo lịch sử" của hệ thống phân cấp hệ thống tệp (có trong phần cuối của câu trả lời này để tham khảo).
Một bình luận cho câu hỏi của bạn đề cập đến Tiêu chuẩn phân cấp hệ thống tập tin . Bạn có thể sẽ đi đến kết luận, sau khi xem Hướng dẫn lập trình hệ thống tệp và man hier
, macOS đó không tuân theo FHS , đó là một điều của Linux. Tất nhiên, có những điểm tương đồng giữa FHS và bố cục hệ thống tập tin trong macOS vì nguồn gốc UNIX phổ biến, nhưng sự khác biệt rất đáng chú ý. macOS không sử dụng bất kỳ thứ nào trong số này:
/boot
thư mục -> macOS sử dụng /System/Library/Kernels
thay thế (trong các phiên bản cũ hơn của macOS, thư mục chứa kernel là /
)
/home
thư mục -> macOS sử dụng /Users
thay thế
/root
thư mục -> macOS sử dụng /var/root
thay thế
và /opt
không được đề cập không chỉ một lần trong bất kỳ tài liệu nào (nhiều hơn ở /opt
bên dưới.)
Một sự khác biệt nữa giữa macOS và HĐH tuân thủ FHS là việc sử dụng /private
, ví dụ như /etc
là một liên kết tượng trưng đến /private/etc
.
Giới thiệu /net
: Đây là bản đồ tự động (được liệt kê trong /etc/auto_master
), xem Wikipedia để biết thêm thông tin.
Cái gì nên và nên đi vào / opt / và cái gì nên / không đi vào / usr /? Sự hiểu biết của tôi là / usr / được sử dụng cho các thư mục nhà của người dùng, nhưng vì nó tồn tại trong / Users / - mục đích bây giờ là gì?
Mặc dù trước đây /usr
được sử dụng để đặt các thư mục nhà của người dùng , nhưng đó không còn là vấn đề nữa.
Ngày nay, /usr
chứa các lệnh người dùng ( /usr/bin
đối với người dùng bình thường và người dùng /usr/sbin
quản trị, như root
), thư viện dùng chung ( /usr/lib
), trang man ( /usr/share/man
), các tệp thực thi không nên được chạy trực tiếp bởi người dùng ( /usr/libexec
) và các nội dung khác.
Nó cũng cung cấp một thư mục con, /usr/local
để đặt các chương trình, thư viện và các tệp khác không đi kèm với HĐH cơ sở.
/opt
có một vai trò rất giống nhau /usr/local
và chúng dường như có thể hoán đổi cho nhau. Tuy nhiên, từ kinh nghiệm của tôi khi làm việc với các hệ thống Linux / UNIX khác, dường như có một ưu tiên cho /usr/local
các HĐH UNIX dựa trên BSD.
Vì vậy, đây là ý kiến của tôi về nó: macOS dựa trên BSD và do đó tôi sẽ sử dụng /usr/local
. Lưu ý rằng bạn có thể tạo một thư mục chương trình và sau đó các lệnh symlink đến /usr/local/bin
, v.v.
/usr/local/mysql
/usr/local/mysql/bin/mysqladmin
/usr/local/mysql/lib/libmysqlclient.so
/usr/local/bin/mysqladmin -> ../mysql/bin/mysqladmin
/usr/local/lib/libmysqlclient.so -> ../mysql/lib/libmysqlclient.so
Điều này cũng thường được sử dụng trong Linux và UNIX, nhưng FHS rõ ràng cấm nó: nếu bạn muốn cài đặt các gói của bên thứ ba trong hệ thống phân cấp thư mục riêng của họ, bạn nên sử dụng /opt/<package>
thay thế. Lưu ý rằng tuân thủ FHS yêu cầu đặt các tệp cấu hình vào /etc/opt/<package>
và các tệp biến /var/opt/<package>
.
Vì vậy, trong macOS, tôi khuyên bạn nên tuân thủ /usr/local
như được mô tả ở trên.
Tôi biết các phần mềm bổ trợ như Cisco VPN và XQuartz cài đặt /opt
, vì vậy những khác biệt ở trên bắt đầu mờ đi.
man hier
Như đã đề cập ở trên, đây là man hier
:
A historical sketch of the filesystem hierarchy. The modern macOS filesystem is documented in the
``File System Programming Guide'' available on Apple Developer.
/ root directory of the filesystem
/bin/ user utilities fundamental to both single-user and multi-user environments
/dev/ block and character device files
fd/ file descriptor files; see fd(4)
/etc/ system configuration files and scripts
/mach_kernel kernel executable (the operating system loaded into memory at boot time).
/sbin/ system programs and administration utilities fundamental to both single-user and multi-
user environments
/tmp/ temporary files
/usr/ contains the majority of user utilities and applications
bin/ common utilities, programming tools, and applications
include/ standard C include files
arpa/ C include files for Internet service protocols
hfs/ C include files for HFS
machine/ machine specific C include files
net/ misc network C include files
netinet/ C include files for Internet standard protocols; see inet(4)
nfs/ C include files for NFS (Network File System)
objc/ C include files for Objective-C
protocols/ C include files for Berkeley service protocols
sys/ system C include files (kernel data structures)
ufs/ C include files for UFS
lib/ archive libraries
libexec/ system daemons & system utilities (executed by other programs)
local/ executables, libraries, etc. not included by the basic operating system
sbin/ system daemons & system utilities (executed by users)
share/ architecture-independent data files
calendar/ a variety of pre-fab calendar files; see calendar(1)
dict/ word lists; see look(1)
web2 words from Webster's 2nd International
words common words
man/ manual pages
misc/ misc system-wide ascii text files
mk/ templates for make; see make(1)
skel/ example . (dot) files for new accounts
tabset/ tab description files for a variety of terminals; used in the term-
cap file; see termcap(5)
zoneinfo/ timezone configuration information; see tzfile(5)
/var/ multi-purpose log, temporary, transient, and spool files
at/ timed command scheduling files; see at(1)
backups/ misc. backup files
db/ misc. automatically generated system-specific database files
log/ misc. system log files
mail/ user mailbox files
run/ system information files describing various info about system since it was
booted
utmpx database of current users; see utmpx(5)
rwho/ rwho data files; see rwhod(8), rwho(1), and ruptime(1)
spool/ misc. printer and mail system spooling directories
mqueue/ undelivered mail queue; see sendmail(8)
tmp/ temporary files that are kept between system reboots
folders/ per-user temporary files and caches