Где находятся файлы termux на Android

Обновлено: 04.07.2024

При работе на Android в termux у пользователя есть ограниченный выбор того, где можно проверить приложение:

  • в домашнем каталоге ( /data/data/com.termux/files/home ): хорошо работающая файловая система ext4, которая разрешает символические ссылки, но доступна только изнутри termux.
  • в общем хранилище ( /storage/emulated/0 , символическая ссылка ~/storage/. ): доступна для мультимедийных приложений, но не поддерживает символические ссылки и, следовательно, представляет собой ущербную файловую систему со всеми ее недостатками. Файловая система, похоже, поддерживается тем же разделом ext4, что и выше, но смонтирована через какой-то механизм предохранителей, который, как я могу только предположить, отвечает за соблюдение модели разрешений Android.

Было бы неплохо найти способ получить лучшее из обоих; вот что я пробовал до сих пор:

  • запуск git-annex от имени пользователя root в экспериментальных целях: не помогает, файловая система Fuse не поддерживает символические ссылки ( ln -s foo bar → ln: невозможно создать символическую ссылку из 'foo' в 'bar': функция не реализована ).
    • Если бы это сработало, я бы посмотрел, не является ли это просто вопросом разрешений, которые может получить termux, но это, очевидно, вопрос принципа.

    Сценарий, который я имею в виду, — это синхронизация фотографий с планшетом Android в репозитории v5.

    Есть ли другие идеи о том, как можно использовать git-annex с классическими символическими ссылками на Android?

    Хммм. Не могли бы вы подробнее рассказать о своем варианте использования «Сценарий использования, который я имею в виду, — это синхронизация фотографий с планшетом Android в репозитории v5»?

    Допустим, у меня есть хорошая коллекция семейных фотографий на моем настольном компьютере, прикрепленная к папке с именем family . Допустим, у нас установлено число копий, равное 1. Я сохраняю только лучшие фотографии, поэтому они всегда занимают около 1 ГБ. В семейной папке у меня есть хорошо организованные подпапки, и я время от времени добавляю новые изображения. У меня есть планшет Android, который стоит на моем журнальном столике, и я хочу, чтобы посетители могли открыть планшет, запустить какое-нибудь приложение-галерею и просмотреть все мои семейные фотографии. Иногда я беру планшет и беру его с собой на семейные встречи, поэтому я хочу, чтобы все фотографии были готовы для просмотра в автономном режиме.

    В этом варианте использования, возможно, я запускаю помощника внутри termux. Я клонирую семейство в /data/data/com.termux/files/home, устанавливаю его как стандартную групповую передачу и называю его t , я также клонирую его в /storage/emulated/0 , устанавливаю в качестве стандартного группового клиента и называю это crippled клиентский репозиторий c. Теперь наша папка c должна быть доступна любому приложению фотогалереи Android. Когда мы вносим изменения в family , на нашем рабочем столе помощник на планшете Android вносит их, когда у нас есть Wi-Fi, он, вероятно, скопирует их прямо в c ?

    Если я делаю фотографию на своем планшете, помещаю ее в каталог c (который доступен из моего приложения для работы с фотографиями), то эту фотографию следует скопировать непосредственно в семью (если у меня есть Wi-Fi). Если у меня нет вайфая, то это фото надо сразу копировать на t в случае чего у меня две копии файла на планшете (я так думаю)? Если я удалю фотографию из поврежденной файловой системы c, у меня останется та, которая уже была скопирована в t. Если я снова подключусь к Wi-Fi, возможно, фотография будет отправлена ​​​​семье с t. Он может остаться в t, так как отсутствует в c, не уверен, как это будет работать (но в любом случае, смотрите архивные папки в следующем абзаце).

    Возможно, я хочу сэкономить место на своем планшете (удаление из фотоприложения может сработать?, но архивирование, скорее всего, сработает). Итак, я открываю свое приложение для работы с фотографиями, просматриваю свою папку c и начинаю помещать кучу файлов в подпапку с именем archive. Затем они немедленно удаляются с моего планшета (если только они никогда не синхронизировались с семьей, и в этом случае у меня есть две их копии, поэтому у меня все еще будет копия, хранящаяся в передаче t ). Если я архивирую файлы, когда у меня нет Wi-Fi, вероятно, помощник просто переместит их в t, поскольку git-приложение не может проверить копию в семье?

    Подойдет ли что-то подобное для вашего варианта использования? На самом деле я не использую терминологию Android, поэтому я уверен, что другие могут иметь некоторое представление об использовании различных каталогов.

    Конкретный репозиторий, который я ищу для первого этапа, — это репозиторий свадебных фотографий. Он содержит как рабочие каталоги задействованных фотографов (некоторые JPEG, некоторые на основе RAW с Makefiles с версией git и sidecars для получения файлов JPEG, которые затем проверяются с numcopies = 0), где некоторые фотографы имеют свои файлы в нескольких копиях для отражают их предварительную сортировку. Окончательные фотографии также копируются в каталог релиза в различных комбинациях («полный выбор пары», «фотографии, предоставленные гостям», «другие фотографии гостей»), которые затем распространялись процессом, неподконтрольным git-приложению (zip файлы были созданы и распространены через веб-сервер).

    Этот рабочий процесс копирования обычно хорошо работает с git-annex v5 (или v6, когда файлы всегда остаются заблокированными): даже если файлы были возвращены разными участниками с разными настройками хэша по умолчанию, копирование файла означает копирование символической ссылки.

    Весь репозиторий занимает 125 ГБ, из которых выделено 3 ГБ.

    На планшете, когда я клонирую репозиторий на кривую сторону файловой системы, первоначальная проверка занимает довольно много времени, а 3gb раздуваются до 8gb из-за того, что файл копируется не только в "полный подбор пары ", а также к другим подборкам и случайным фотографиям в каталогах фотографов.

    Обратите внимание, что в этом репозитории планшет даже не имеет права записи в репозиторий. Он настроен как ненадежный и «требует» папку выбора.

    Следующее хранилище, которое я хотел бы сделать, — это хранилище наших семейных фотографий, содержащее в среднем оцифрованные аналоговые и цифровые фотографии четырех человек, начиная с 2002 года, и содержит около 700 ГБ изображений; в этом репозитории не так много дубликатов, но интересные файлы (часто папка «Выбор» для каждого события, которая содержит копии с файлами с соответствующими именами для последовательности) по-прежнему регистрируются в дубликатах.

    Хммм, да, мое вышеприведенное решение не поддерживает дедупликацию одного и того же файла в нескольких папках. У меня есть одна мысль, которая может сработать (сейчас не могу проверить):

    Используйте proot внутри termux для привязки пути /data/data/com.termux/files/home/annex-photos к точке монтирования ~/storage/pictures/annex . Тогда, возможно, символические ссылки в приложении-фотографии будут представлены в виде файлов в ~/storage/pictures/annex без увеличения фактического объема памяти.

    proot изменит только вид запущенных под ним программ. Вероятно, я мог бы это сделать (если приложение git вообще работает под рутом на рассматриваемом планшете; мне пришлось отключить его, чтобы запустить его на Android 7.1 (совместимо; LineageOS 14.1)).

    Галерея и подобные приложения по-прежнему будут видеть только файловую систему Fuse.

    Аааа. Хорошо, это имеет смысл.

    Итак, когда вы вызываете termux-setup-storage в Termux, он создает набор символических ссылок на стандартные каталоги Android, вызывая setupStorageSymlinks. Но да, новые папки, находящиеся в $ HOME, являются просто символическими ссылками на представление Android FAT32 для этих папок. Я думал, может быть, это что-то другое…

    Итак, после прочтения статьи «Погружение в SDCardFS: как замена Google FUSE уменьшит накладные расходы ввода-вывода» выясняется, что FAT32 — это встроенный стандарт. В статье также есть полезная информация о соглашениях об именах в Android для различных типов хранилищ. Некоторые поиски в Google подразумевают, что люди изменили базовую файловую систему корневой ОС с помощью рутирования, но теперь решения, по крайней мере, зависят от конкретного устройства.

    Я не могу найти элегантного решения на уровне файловой системы для дедупликации файлов, которые были бы видны как мультимедиа для всех приложений Android во внешнем хранилище.

    Возможно, с новым адаптивным хранилищем Android можно будет создавать символические ссылки, но я не пробовал этого и не настроен оптимистично. Приемлемое хранилище широко не поддерживается, но, по сути, оно полностью шифрует ваше устройство и переформатирует ваше «внешнее хранилище» как ext4 или f2fs. Но я полагаю, что любые общедоступные представления внешнего хранилища, вероятно, по-прежнему будут иметь файловую систему FAT32, поэтому они не смогут создавать символические ссылки.

    Моей другой мыслью было бы создать конкретное решение для вашего приложения. Например, вы пытаетесь сделать фотографии видимыми для приложений Галереи, и у вас есть много дубликатов фотографий в нескольких папках. Одним из решений было бы использование альбомов, которые, я уверен, уже поддерживают одну и ту же фотографию в нескольких альбомах (по крайней мере, в Google Фото), занимая при этом место только для одной фотографии. Таким образом, вы можете скопировать одну копию каждой из ваших фотографий в ~/storage/pictures, а затем с помощью Android API добавить фотографии в несколько альбомов. Вероятно, вы могли бы автоматизировать этот процесс с помощью сценариев или, возможно, надстройки Termux? Или, возможно, есть какой-то другой альбом, поддерживающий приложение Android Gallery, в котором используется более простой формат альбома, например файл JSON или что-то в этом роде.

    объявление SDCardFS / FAT32: кажется, что обе оболочки предохранителя вокруг SD-карты (будь то на самом деле отформатированная FAT32, потому что это внешняя карта, или ext4, поскольку она является зашифрованной внутренней на моем устройстве) и SDCardFS (которая, кажется, на мой взгляд, Google просто переносит оболочку предохранителя в ядро) не раскрывает нужные нам функции.

    рекомендуемое хранилище: я думаю, что это то, что происходит на моем устройстве (но я не уверен), поэтому, если это так, между ними все еще есть оболочка предохранителя / SDCardFS.

    приложение для конкретного объявления: это по-прежнему означает, что git-приложение должно работать с поврежденной файловой системой, и я не хочу полагаться на специальные решения для каждого приложения.

    Когда я только настраивал новое устройство, я увидел, что Storage Access Framework (похоже на Android-идею gvfs/kvfs с большим количеством flatpak-порталов: пользовательская файловая система, работающая на saf:/ и content:// URI, а не файлы, возможно, операции с файлами выполняются с помощью IPC и приемных обработчиков файлов) могут помочь:

    Во встроенном файловом менеджере LineageOS я не вижу две "виртуальные SD-карты" (внутреннюю и внешнюю), а также "устройство" "Termux" с соответствующим логотипом и "0B free", что позволяет мне заглянуть в домашний каталог termux (но не в его каталог usr). Из этого файлового менеджера я даже вижу фотографии внутри обычной (с символической ссылкой) проверки и могу открыть их с помощью приложения Simple Gallery. (При условии, что они заканчиваются на «.jpg», а не на «.JPG», но это, вероятно, особенность файлового менеджера).

    Я еще не нашел другого приложения, которое видит это устройство "Termux"; Ghost Commander видит только «Документы», а также внутреннюю и внешнюю SD-карты; файловый менеджер «Dir» предоставляет выбор SAF только при создании каталогов на внешней SD-карте (а затем показывает тот же выбор, что и Ghost Commander), простые инструменты (Простой файловый менеджер, Простая галерея) показывают «Внутренние», «SD-карта» и «Корень» в их собственном выборе хранилища (может быть до SAF; аналогичная ситуация также для файлового менеджера Amaze).

    Если бы мы могли воспроизвести действия встроенного файлового менеджера для доступа к файлам, это могло бы стать решением. Termux, очевидно, уже помогает в этом, экспортируя домашний каталог (начиная с 0.34), но, возможно, они также могут делать больше (например, экспортировать пользовательские каталоги XDG для быстрого доступа?).

    Termux — лучший инструмент Когда дело доходит до программирования или взлома, все работает отлично. Но что, если вы хотите получить доступ к файлам Termux с телефона Android. Есть несколько способов, но сегодня в этом посте я покажу вам лучший способ доступа ко всем файлам в Termux.📁

    Файловый менеджер Termux:

    При использовании Termux иногда нам кажется, что будет проще, если мы сможем получить доступ к файлам Termux с помощью файловых менеджеров. Но если вы используете свой внутренний файловый менеджер для поиска файлов termux, вы ничего не найдете. Но в магазине игр есть несколько файловых менеджеров, которые позволят вам получить доступ к внутреннему файлу termux с помощью вашего телефона Android.

    Диспетчер файлов Termux Доступ к файлам Termux с Android

    Мне больше всего нравится Material File Manager. Вы можете использовать этот небольшой файловый менеджер для доступа к вашему хранилищу termux, и, если хотите, вы можете копировать данные из каталогов termux во внутреннее хранилище с помощью этого файлового менеджера. с помощью файлового менеджера Termux Вы даже можете поделиться своими файлами termux с другими средами разработки в магазине воспроизведения, чтобы упростить программирование.

    Для доступа к файлам из-за пределов Termux нам потребуется выполнить несколько основных шагов, и после их выполнения вы сможете использовать этот файловый менеджер для доступа к своим данным в termux.

    Прежде всего нам нужно установить файлы материалов в Termux, это легкий файловый менеджер с открытым исходным кодом размером 3,7 МБ в магазине игр. Интерфейс чистый и имеет почти все функции хорошего файлового менеджера. Вы можете использовать приведенную ниже ссылку, чтобы загрузить его из игрового магазина.

    Диспетчер файлов Termux: доступ к файлам Termux с Android

    Откройте приложение "Файлы", и вы увидите диалоговое окно "Разрешить разрешения". Нажмите "Разрешить", чтобы этот файловый менеджер мог получить доступ к вашему хранилищу.

    Termux File Manager: доступ к файлам Termux с Android

    Теперь вы увидите файловый менеджер Android, и снова вам просто нужно щелкнуть в верхнем левом углу, и здесь, внизу, вы увидите значок Termux, щелкните значок Termux.

    Диспетчер файлов Termux: доступ к файлам Termux с Android

    Теперь здесь вы можете увидеть все файлы в вашем termux, но это не файловый менеджер, который мы собираемся использовать, поэтому нажмите кнопку «Выбрать» в правом нижнем углу.

    Диспетчер файлов Termux: доступ к файлам Termux с Android

    Теперь вы можете видеть, что домашний каталог Termux доступен. Чтобы получить доступ к файлам termux, просто нажмите на него.

    Termux File Manager: доступ к файлам Termux с Android

    Termux-YTD и Termux-Games — это файлы внутри моего Termux, и я могу получить к ним доступ с помощью диспетчера файлов. Теперь вы можете делать с этим файлом что угодно, например делиться им с любым текстовым редактором IDE в магазине игр. Вы даже можете копировать файлы в эту папку, и они также будут отображаться в приложении Termux.

    Диспетчер файлов Termux: доступ к файлам Termux с Android

    Вывод:

    Доступ к файлу с помощью Termux — это простая задача с использованием правильного файлового менеджера. Если вы просто хотите открыть файлы, вы также можете прочитать этот пост [Открыть любой файл внутри Termux]. В магазине игр есть несколько действительно хороших IDE, и вы можете использовать этот файловый менеджер Termux, чтобы делиться своими файлами Termux с этими приложениями. Если ваш Termux занимает слишком много места, вы можете очистить его, прочитав мой предыдущий пост [Очистите хранилище Termux без удаления Termux]. если у вас есть какие-либо вопросы, просто прокомментируйте ниже. Спасибо, что читаете, ребята, вдохновляйтесь и всегда оставайтесь этичными👾.

    Приложение Termux представляет собой эмулятор терминала. Если я создам там файл или папку, а затем воспользуюсь другим приложением для просмотра файлов для просмотра своего устройства, где я смогу найти эти файлы?

    Если вы ищете другие папки, возможно, они находятся в /storage/emulated/0 . Например, /storage/emulated/0/Download (без "s") для ваших загрузок или /storage/emulated/0/DCIM для ваших изображений.

    @beeshyams это то, что я получил от команды pwd, но она смонтирована? Я не думал, что приложения могут получить доступ к корневому каталогу, и терминал должен будет прочитать его, чтобы узнать его позицию. Я предположил, что термины куда-то смонтировали папку с данными и не могут видеть дальше монтирования.

    7 ответов 7

    Вам не нужно рутировать ваше устройство. Все, что вам нужно сделать, это запустить следующую команду на нерутованном (или рутированном) устройстве, чтобы разрешить termux доступ к вашим существующим каталогам, в частности /storage/emulated/0 :

    это создает новый каталог в termux, ~/storage , который содержит симлинки на /storage/emulated/0 и может быть доступен для стандартного файлового менеджера с графическим интерфейсом.

    Вам нужно будет предоставить доступ к файлу для termux при появлении соответствующего запроса после запуска команды.

    Это сработало! Хотя я просто укажу всем, кто этого не понял, что это не сам каталог ~/storage, который является /storage/emulated/0 , а это место является символической ссылкой ~/storage/shared. Следовательно, размещение вещей в каталоге ~/storage не поможет вам получить доступ к файлам.

    Где я могу получить доступ к этому файлу в режиме USB? Мне нужно отредактировать файл конфигурации дополнительного ключа. У меня сейчас нет клавиши ctrl, я ничего не могу сделать через termux

    Если вы не хотите рутировать свой телефон, можно изменить разрешение для Termux (Настройки->Приложения->Termux->Разрешения) и включить разрешение на хранение.

    Таким образом, вам предоставляется доступ к хранилищу телефона и SD-карты, и вы можете использовать его как суперпользователя (mv, ls и другие команды работают по назначению) в приложении.

    Таким образом, вы можете перемещать или копировать нужные вам файлы во внутреннюю память.

    Вам также может понадобиться запустить termux-setup-storage в Termux, чтобы получить доступ к SD-карте или внутреннему хранилищу

    Каталог по умолчанию: /data/data/com.termux/files/home .

    Поскольку Termux поддерживает команды bash, пользователь может запустить pwd для печати текущего рабочего каталога.

    Примечание: pwd — это аббревиатура от печати рабочего каталога.

    @Maxcot К сожалению, да. Папка /data/ доступна всем, только если телефон рутирован. По умолчанию только Termux может записывать и читать эту папку.

    @Maxcot, вы можете скопировать (или переместить, но будьте осторожны) их в /sdcard, если хотите. Обратитесь к этому вопросу на SO

    Чего я не понимаю, так это почему у меня есть доступ к папкам через termux, но не через какое-либо другое приложение, такое как ES File Explorer. Как будто разрешения зависят от приложения, а не от пользователя.

    Вы можете запросить переменную $HOME, чтобы найти "папку по умолчанию" независимо от используемого терминального приложения:

    screenshot

    Вы можете получить доступ к файлам внутри папки termux, просто сделав это. (Без использования каких-либо сторонних приложений или рутирования вашего устройства)

    Шаг 1. Перейдите в раздел "Загрузки" на вашем устройстве


    Шаг 2. Перейдите на панель приложений


    Шаг 3. Прокрутите вниз, пока не найдете Termux


    Шаг 4. Нажмите на Termux, и вы увидите свои файлы


    У Termux есть каталог по умолчанию, недоступный для новичков. Чтобы убедиться в этом, в CLI введите

    и data/data/com.termux/files/home должны появиться.

    Чтобы иметь возможность управлять своим каталогом Android из Termux, на устройстве Android перейдите в «Настройки» — «Приложения» — «Termux» — «Разрешения» — коснитесь «Хранилище».

    Теперь в CLI, в Termux, введите

    и /storage/emulated/0 должны появиться.

    Вы также можете создать новый файл в локальном хранилище, набрав

    Вот и все. Теперь вы можете играть с локальным хранилищем устройства.

    Вы можете коснуться его в data/data/com.termux/files/home . Это основной каталог Termux по умолчанию.

    Невозможно найти файл, который вы создали в главном каталоге Termux, как я упоминал выше, на вашем телефоне, потому что он не имеет root-прав ни на одном устройстве.

    Он работает как сервер. После этого data/data/com.texmux/files/home , который является основным каталогом Termux по умолчанию, вы уже можете просматривать файлы, создавать файлы, манипулировать ими так же, как вы используете свой файловый менеджер


    Подробное сравнение функций между типами хранилищ см. ниже:

    Тип хранилища поддержка chmod/chown поддержка специальных файлов поддержка исполняемых файлов Режим доступа
    Внутренний ($HOME/$PREFIX) да да да RW (каталог приложения)
    Общее хранилище нет нет нет RW
    Внешнее хранилище нет нет нет RO / RW (каталог приложения)

    Полный доступ для чтения и записи к внешним SD-картам и USB-накопителям доступен только на устройствах с root-правами. Для тех, кому интересно, почему некоторые приложения могут записывать во внешнее хранилище без ограничений: эти приложения используют специальные API (Storage Access Framework), недоступные для приложений командной строки.

    Общее хранилище, а также внешнее хранилище не подходят для установки программного обеспечения. Даже не пытайтесь перемещать каталоги Termux, такие как $HOME или $PREFIX, в такое хранилище. Такая опция доступна только для опытных пользователей, у которых есть root-права на устройстве и которые знакомы с настройкой разделов и файловой системы на своем внешнем хранилище. Использование адаптированного хранилища не сделает вашу внешнюю SD-карту совместимой с Termux, это фактически то же самое, что и общее хранилище (EXT4/F2FS с наложением, совместимым с FAT32/exFAT).

    После создания каталога Android/data/com.termux с помощью файлового менеджера или termux-setup-storage вы можете получить доступ к своему внешнему SD прямо в этой папке. Остальная часть внешней SD-карты не будет доступна из Termux, если вы не предоставите разрешение на хранение для Termux в Android. Важно: помните, что если вы удалите приложение Termux, этот каталог будет удален!

    Для доступа к общему и внешнему хранилищу необходимо запустить termux-setup-storage. Затем вам будет предложено «Разрешить Termux доступ к фотографиям, мультимедиа и файлам на вашем устройстве», что вы должны разрешить.

    Termux-setup-storage.jpg

    Выполнение termux-setup-storage гарантирует:

    1. Это разрешение на общее хранилище предоставляется Termux при работе на Android 6.0 или более поздней версии.
    2. Создается личная папка приложения во внешнем хранилище (если внешнее хранилище существует).
    3. Создается папка $HOME/storage.


    Если у вас установлено приложение Termux:API и пакет termux-api, вы можете использовать средство выбора файлов Android, чтобы получить любой файл из общего или внешнего хранилища с помощью утилиты termux-storage-get . Пример:

    Файл, выбранный с помощью средства выбора файлов, будет сохранен как "filename.txt".

    Содержимое созданной папки $HOME/storage является символическими ссылками на разные папки хранения:

    • Корень общего хранилища между всеми приложениями.
    • Стандартный каталог для загрузки, например, с системный браузер.
    • Традиционное место для фотографий и видео при установке устройства в качестве камеры.
    • Стандартный каталог для размещения изображений, доступных пользователю.
    • Стандартный каталог для размещения любых аудиофайлов, которые должны быть в обычном списке музыки для пользователя.
    • Стандартный каталог для размещения фильмов, доступных пользователю.
    • Символическая ссылка на личную папку Termux на внешнем хранилище (только если внешнее хранилище доступно).

    Важно: не очищайте данные приложения Termux через настройки ОС Android, если у вас есть какие-либо файлы, помещенные в ~/storage/external-1 .Если вы это сделаете, все данные будут потеряны, так как Android сотрет все каталоги, связанные с Termux.


    < /p>

    Вы можете получить доступ к домашнему каталогу Termux ($HOME) из файлового менеджера с помощью Storage Access Framework и иметь доступ к таким дискам, как USB или внешняя SD-карта, в режиме чтения-записи.

    Несколько рекомендуемых файловых менеджеров, которые могут получить доступ к домашнему каталогу Termux:


    Действия для доступа к $HOME такие же, как и для любых внешних дисков: откройте диспетчер хранилища --> выберите диск (Termux) --> выберите корневой каталог хранилища.

    Вы можете использовать следующую команду для запуска внутреннего файлового менеджера Android, который также позволяет передавать файлы между Termux и другими томами хранилища:

    Вы также можете запустить сборщик файлов Termux:

    Альтернативным способом может быть прямой доступ к домашнему каталогу Termux с правами суперпользователя. Это возможно только на рутированных устройствах. Однако использование root для работы с файлами Termux не рекомендуется, так как вы можете легко испортить режимы доступа к файлам и контексты SELinux.

    Операционная система Android обычно не предоставляет доступ для записи к системным каталогам, таким как корневая файловая система ("/"), по соображениям безопасности и целостности системных файлов. Это затрудняет соблюдение стандарта иерархии файловой системы, и Termux должен использовать собственный.

    Корень установки пакетов

    Все пакеты должны устанавливать свои данные в этот каталог (установочный префикс):

    В целях безопасности пользовательских данных не разрешается создавать пакеты, устанавливающие файлы за пределами этого каталога.

    Мы часто называем этот путь $PREFIX или $TERMUX_PREFIX, последний используется в контексте упаковки.

    Таблица иерархии файловой системы Termux

    < tr>
    Путь Назначение
    $/bin Исполняемые файлы, используемые оболочкой. Объединяет /bin , /sbin , /usr/bin , /usr/sbin .
    $/etc Файлы конфигурации.
    $/include Заголовки C/C++.
    $/lib Общие объекты (библиотеки), исполняемые данные во время выполнения или относящиеся к разработке.
    $/libexec Исполняемые файлы, которые не должны запускаться пользователем напрямую.
    $/opt Корневой каталог установки загруженных пакетов.
    $/share Неисполняемые данные и документация среды выполнения.
    $/tmp Временные файлы. Стирается при каждом перезапуске приложения. Объединяет /tmp и /var/tmp. Может свободно изменяться пользователем.
    $/var Переменные данные , такие как кэши и базы данных. Может быть изменено пользователем, но с дополнительной осторожностью.
    $/var/run Файлы блокировки, файлы PID, сокеты и другие временные файлы, созданные демонами. Заменяет /run .

    Важно: не путайте префикс каталога. /usr . Он не имеет ничего общего с реальным каталогом /usr, который вы можете найти в дистрибутивах Linux. Termux никогда не использует иерархию вторичной файловой системы ( /usr ) для целей упаковки.

    Все жестко закодированные ссылки на каталоги FHS должны быть исправлены.

    Домашний каталог Termux находится за пределами префикса установки пакета и находится по этому пути:

    Это место, где должны храниться все пользовательские данные. Поскольку все внутренние данные приложения обычно хранятся в файловой системе EXT4 или F2FS, оно поддерживает режимы доступа к файлам, разрешения на выполнение и специальные файлы, такие как символические ссылки.

    Пакеты никогда не должны устанавливать файлы в домашний каталог. Исключение составляют только сценарии файлов .deb, их можно использовать для подготовки начальной конфигурации в $HOME для пакетов, которые не могут сделать это самостоятельно.

    В ОС Android предусмотрено несколько каталогов, некоторые из них совместимы с FHS. Все системные каталоги доступны только для чтения, и пакеты никогда не должны пытаться устанавливать или удалять что-либо в них.

    Читайте также: