Mẹo cấu trúc thư mục home (2023)
(unixdigest.com)Mẹo về cấu trúc thư mục home
- Việc cấu trúc hoặc sắp xếp thư mục thực ra không khác nhiều so với việc cấu trúc hay sắp xếp những thứ khác; điều cốt lõi là làm theo cách hợp lý nhất với bản thân
- Khi xử lý việc tổ chức, mọi thứ có thể rất nhanh chóng trở nên mất kiểm soát
- Mục đích chính của việc sắp xếp là hiệu quả: phải có thể tìm thứ cần tìm một cách dễ dàng và nhanh chóng, đồng thời lưu thứ cần lưu cũng dễ dàng và nhanh chóng
Các tệp và thư mục mặc định bị ẩn
- Trong thư mục home của tôi có đầy đủ các tệp ẩn mặc định vốn là một phần của các hệ điều hành Unix hiện đại như
.config,.aliases,.profile,.gnupg,.mozilla - Tôi muốn mọi ứng dụng đều tôn trọng
XDG_CONFIG_HOME, nhưng cũng không quá can thiệp hay bận tâm về việc đó - Trước đây tôi từng quản lý
$HOMEbằng Git, và đó là một cách rất tốt để tổ chức Dotfiles - Tôi vẫn đưa tất cả Dotfiles vào Git để giữ lịch sử thay đổi, nhưng chỉ giữ nguyên những Dotfiles hoạt động giống nhau trên các hệ thống khác nhau mà tôi sử dụng
- Các Dotfiles theo từng cấu hình được lưu trong thư mục
dotfilesvà dùng symbolic link
Cấu trúc chung cho tệp và thư mục
- Các tệp và thư mục thông thường chủ yếu được tổ chức theo hai cách: "danh mục" và "ngày tháng"
- Cấu trúc thư mục cơ bản:
bindataedatamntusr/dotfiles
- Giữ nguyên các thư mục
DesktopvàDownloads(vì có vẻ hầu hết ứng dụng đều ép dùng chúng) - Thư mục
bindùng để lưu shell script và các tệp thực thi nhị phân cá nhân (không bao gồm những thứ được cài qua trình quản lý gói) - Thư mục
mntđược dùng cho nhiều điểm mount khác nhau như thẻ SD, đĩa USB, bộ nhớ dùng chung trong homelab, v.v. - Tôi tuyệt đối không dùng tự động mount mà sử dụng shell script để mount
- Thư mục
usr/dotfilesđược quản lý bằng Git cùng với các Dotfiles thông thường như.aliases, và sử dụng symbolic link tới các tệp liên quan trong thư mụcdotfiles
Cấu trúc thư mục dữ liệu
- Thư mục
datavàedatalà hai thư mục chính dùng để lưu toàn bộ dữ liệu - Hai thư mục này là các ZFS dataset chạy trên một pool mirror đĩa, tách biệt với cài đặt hệ thống gốc
- Tôi tận dụng ZFS để sao lưu dễ dàng lên bộ nhớ mạng bằng cách thường xuyên dùng snapshot cũng như ZFS send/receive
- Điểm khác biệt giữa
datavàedatalàedatalà ZFS dataset dùng mã hóa gốc mặc định - Mã hóa tốt cho quyền riêng tư, nhưng cũng là một lớp phức tạp khủng khiếp đặt chồng lên một hệ thống phân cấp tệp vốn đã phức tạp, và ZFS encryption vẫn có lỗi
- Tôi đặc biệt khuyến nghị luôn sao lưu dữ liệu quan trọng vào nhiều giải pháp lưu trữ và nhiều địa điểm khác nhau
- Tôi không dùng lưu trữ đám mây cho những thứ quan trọng
Mẹo bổ sung
- Quy tắc cơ bản khi đặt tên tệp và thư mục là chỉ nhìn tên cũng phải dễ dàng nhận ra đó là gì
- Nếu không thể biết tệp nói về gì nếu chưa mở nó ra, thì bạn nên mở ngay và đổi sang một cái tên có ý nghĩa hơn cho lần sau khi nhìn thấy nó
- Nếu để tệp và thư mục bừa bộn mà không sắp xếp, về sau sẽ rất khó chỉnh sửa lại
- Tôi dùng tên tệp có mô tả dài khi cần, để có thể nắm được nội dung tệp mà không cần mở nó ra
Ý kiến của GN⁺
-
Bài viết này đưa ra các mẹo thực tế về cách sắp xếp và tổ chức cấu trúc thư mục. Đặc biệt, cách tận dụng ZFS dataset để chia tách và quản lý thư mục được mã hóa và không mã hóa khá thú vị.
-
Cá nhân tôi nghĩ rằng nên lưu trữ dữ liệu quan trọng dưới dạng mã hóa. Tuy nhiên, vì cũng có những nhược điểm như suy giảm hiệu năng hoặc tăng độ phức tạp do mã hóa gây ra, nên có vẻ tốt hơn nếu sử dụng có chọn lọc tùy theo tình huống.
-
Ngoài ra, tôi cho rằng việc chia sẻ trước cách truy cập dữ liệu đã mã hóa với người thân trong gia đình cũng là một điểm quan trọng. Điều này cần thiết để không làm mất dữ liệu ngay cả khi bản thân không thể truy cập được nữa do tai nạn hay sự cố.
-
Đối với quản lý dữ liệu cá nhân, việc xây dựng một chiến lược sao lưu có hệ thống như tác giả là rất quan trọng. Có thể tuân theo quy tắc sao lưu 3-2-1, nhưng thay vì lưu trữ đám mây thì tận dụng các kho lưu trữ cục bộ phân tán về mặt vật lý cũng có vẻ là một cách hay.
-
Các công cụ mã nguồn mở hữu ích cho việc quản lý dữ liệu cá nhân gồm có Syncthing hoặc Nextcloud. Nếu tận dụng tốt các công cụ này, có thể đạt được việc quản lý dữ liệu cá nhân một cách có hệ thống và an toàn.
1 bình luận
Ý kiến trên Hacker News
Sau đây là phần tóm tắt các bình luận trên Hacker News:
~/gobị chỉ ra là một vấn đề. Có thể giải quyết bằng cách cấu hìnhGOPATH, nhưng vẫn bị xem là một giá trị mặc định không tốt.xdg-ninjacó thể giúp cấu hình để phần lớn ứng dụng tuân theo tiêu chuẩn XDG, từ đó hỗ trợ dọn dẹp thư mục home..configvới dung lượng lên tới hàng gigabyte, gây khó khăn khi sao lưu. Có ý kiến cho rằng nên tách riêng cấu hình và dữ liệu phiên.ngày-mô-tả.txthoặctừ-khóa-tiêu-đề-ngày.txt.~/dotfilescó thể dùng làm kho Git để quản lý dotfile, rồi tạo symbolic link trong thư mục home để tiện sử dụng.~/projectscó thể được dùng để quản lý theo từng dự án với các thư mục con, còn~/tmpcó thể tận dụng làm nơi lưu tệp tạm. Sắp xếp ghi chú bằng website hoặc Markdown cũng là một cách hay.