Tương tác với bộ nhớ trong và bộ nhớ ngoài trên Termux

Internal và external storage là hai khái niệm tương ứng với bộ nhớ trong và bộ nhớ ngoài. Trên Termux, bộ nhớ được chia làm ba loại nhớ chính:

  1. App-private storage: Hầu hết các tệp chính được lưu trữ ở trong này, bên trong thư mục $HOME và có thể dễ dàng truy xuất bằng cách gọi đường dẫn của tệp. 
  2. Shared internal storage: Là bộ nhớ khả dụng cho toàn bộ những ứng dụng. Trên Android 6.0 người dùng phải cấp quyền truy cập bộ nhớ này thì ứng dụng mới được phép truy xuất dữ liệu
  3.  External storage: Bộ nhớ trên thẻ SD . Mỗi ứng dụng có một thư mục riêng trên thẻ SD bên ngoài và trao đổi giữa chúng cần phải sử dụng một API đặc biệt mà hiện tại chưa có sẵn trong Termux. Không thể truy cập dựa trên SAF (Storage Access Framework) vì shell được thực thi bên ngoài Android Framework.

Truy cập shared và external storage

Để truy cập được hai loại bộ nhớ trên, các ông cần phải chạy lệnh termux-setup-storage để yêu cầu cấp quyền. Lúc này các ông sẽ nhận được một thông báo như hình. Việc bây giờ là nhấn Allow

Tương tác với bộ nhớ trong và bộ nhớ ngoài trên Termux
Điều này đảm bảo:
  • Quyền truy cập hai loại bộ nhớ nêu trên tại Android 6.0 trở lên
  • Một thư mục ứng dụng riêng tư sẽ được tạo trên bộ nhớ ngoài (Nếu bộ nhớ ngoài tồn tại)
  • Thư mục $HOME/storage sẽ được tạo

~/storage

Thư mục này sẽ chứa liên kết các thư mục khác nhau, bao gồm:

  • Nơi chia sẻ bộ nhớ giữa các ứng dụng
~/storage/shared
Nơi chứa những dữ liệu được tải xuống
~/storage/downloads
  • Nơi chứa hình ảnh và videos nếu thiết bị được đặt dưới dạng một camera
~/storage/dcim
  • Nơi chứa hình ảnh
~/storage/pictures
  • Nơi chứa âm thanh
~/storage/music
  • Nơi chứa videos
~/storage/movies
  • Nơi chứa thư mục Termux-private trên bộ nhớ ngoài (chỉ khi bộ nhớ ngoài là khả dụng).
~/storage/external-1

Quan trọng: Không bao giờ được phép xóa dữ liệu ứng dụng Termux thông qua Android Settings (Cái này chắc nhiều ông biết khi mà Facebook với Mess có dấu hiệu lag là hay áp dụng lắm này) nếu các ông có bất kì dữ liệu nào được đặt trong ~/storage/external-1. Nếu không, tất cả dữ liệu có liên kết với Termux đều sẽ bị xóa.