Насколько подобный Android и QNX?

Я собираюсь отправить еще два решения в надежде, что они могут быть полезными в будущем. Они прибыли от администраторов Linux в работу. Просто идет для показа, сколько молотков будет работать над этим гвоздем!

Решение 1:

Привет Denham,

Я должен сделать несколько предположений здесь, например, что часть каталога с "XXX Сезонами #" всегда будет "внешним" каталогом (вершина).

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

find /media/Expansion2/Series/ -type d | while read olddir
do 
   newdir=`echo "${olddir}" | awk -F "/" '$NF ~ /Season/ { last=substr($NF,index($NF, "Season")); while (i<(NF-1)) { i++; printf("/%s", $i) }; printf("/%s\n", last) } $NF !~ /Season/ { print }'`
   if [ "${olddir}" != "${newdir}" ]
   then
       mv "${olddir}" "${newdir}"
   fi
done

Конечно, перед выполнением его с командой "mv "$ {olddir}" "$ {newdir}"", необходимо поместить что-то как "эхо "$ {olddir}" "$ {newdir}"", чтобы гарантировать, что Вы получаете результаты, которые Вы ожидаете, или Вы могли закончить с другой головной болью :-P


Решение 2:

Привет Denham,

Большая часть ответа уже была в вопросе. Так или иначе выполнение чего-то как следование из папки Series должно работать просто великолепно:

find -mindepth 2 -maxdepth 2 -type d | while read dir; do mv -T "$dir" "`dirname "$dir"`/`basename "$dir" | sed "s/.*Season \([0-9]*\)$/Season \1/i"`"; done  


Объяснение:
• найдите-mindepth 2-maxdepth 2 - тип d (каталоги списка два уравнивает),
• в то время как считанный dir; (цикл на каждом dir)
• mv-T "$dir" (перемещают исходный dir в...-T, необходим для получения ошибки, если папки Season не уникальны, т.е. у Вас нет "Сезона Теории "большого взрыва" 22" и "Сезона 22" в том же каталоге),
• dirname "$dir" возвращает путь, где dir
• базовое имя "$dir" возвращает название каталога
• sed "s/.Season ([0-9]) $ / Сезон \1/i" завершает волшебство с нечувствительным к регистру regexp на всякий случай.

В моем маленьком тесте это работало (попробуйте его сначала эхом прежде mv):

someuser@linux-box:/tmp/Series$ find
.
./The Big Bang Theory
./The Big Bang Theory/Season 2
./The Big Bang Theory/Season 2/file1.avi
./The Big Bang Theory/Season 2/file 3.avi
./The Big Bang Theory/Season 2/file2.avi
./The Big Bang Theory/Season 2/file
./The Big Bang Theory/Season 2/3.avi
./The Big Bang Theory/The Big Bang Theory Season 1
./The Big Bang Theory/The Big Bang Theory Season 1/file1.avi
./The Big Bang Theory/The Big Bang Theory Season 1/file 3.avi
./The Big Bang Theory/The Big Bang Theory Season 1/file2.avi
./The Big Bang Theory/The Big Bang Theory Season 1/file
./The Big Bang Theory/The Big Bang Theory Season 1/3.avi
./Other Series
./Other Series/Season 2
./Other Series/Stre dsfdf sd dSeason 3

someuser@linux-box:/tmp/Series$ находят-mindepth 2-maxdepth 2 - тип d | в то время как считанный dir; сделайте mv-T "$dir""dirname "$dir"/basename "$dir" | sed "s/.*Season \([0-9]*\)$/Season \1/i"";готово
mv: ./The Big Bang Theory/Season 2' and./The Теория/Сезон 2 большого взрыва' является тем же файлом
mv: ./Other Series/Season 2' and./Other Ряды/Сезоны 2' являются тем же файлом

someuser@linux-box:/tmp/Series$ находят
.
./The Теория "большого взрыва"
./The Теория/Сезон 2 большого взрыва
./The Теория/Сезон большого взрыва 2/file1.avi
./The Теория/сезон 2/файла 3.avi большого взрыва
./The Теория/Сезон большого взрыва 2/file2.avi
./The Теория/Сезон 2/файла большого взрыва
./The Теория/Сезон большого взрыва 2/3.avi
./The Теория/Сезон 1 большого взрыва
./The Теория/Сезон большого взрыва 1/file1.avi
./The Теория/сезон 1/файл 3.avi большого взрыва
./The Теория/Сезон большого взрыва 1/file2.avi
./The Теория/Сезон 1/файл большого взрыва
./The Теория/Сезон большого взрыва 1/3.avi
./Other Ряд
./Other Ряд/Сезон 3
./Other Ряд/Сезон 2

5
26.05.2013, 05:35
3 ответа

QNX является системой с микроядром, с (очевидно), главным образом интерфейсами пространства пользователя POSIX. Linux является монолитным ядром с главным образом интерфейсом POSIX.

Ядро Linux в Android в большой степени изменено и настроено для аппаратных средств, на которых это работает. Это имеет много нестандартных интерфейсов и устройств под его управлением по Вашему случайному телефону/планшету. Только посмотрите на борьбу для получения производных Android, работающих на машинах. Я предполагаю, что что-то подобное, с другими изменениями и конкретными устройствами, также допустимо для QNX на том, что Вы рассматриваете.

Рабочее пространство пользователя Android по QNX, возможно, возможно, но очень большое обязательство. Посмотрите на крупную работу, сделанную k-FreeBSD Debian (извините, если написание является неправильным), люди для создания намного более подобной пары пространства пользователя ядра, где, кроме того, большая часть пространства пользователя была сборкой, чтобы быть портативной, работать хорошо вместе.

Рабочий Android на машине мог бы быть более выполнимым, но Вы испытаете недостаток в большинстве (как "всего") документации, требуемой использовать любое из специальных устройств, которые делают машину worthwile. Это также применимо к последней точке.

5
27.01.2020, 20:39
  • 1
    Linux не имеет интерфейса POSIX. Вам нужен libc сверху его (Android включает один). SoC того устройства (OMAP4430) также присутствует в некоторых планшетах на базе Android, таким образом, рабочий Android не должен быть проблемой, если Вы могли бы заменить загрузчик. –  Gilles 'SO- stop being evil' 28.05.2013, 04:01

Казалось бы, что это не возможно, по крайней мере, согласно этому потоку:

Конкретно несколько пользователей сообщают следующим образом:

Вы не можете заменить OS на сборнике пьес. случай закрывается. это защищено и не было повреждено. что касается 2,0, который требует нового сборника пьес с предыдущей версией ОС, которая не была обновлена.

0
27.01.2020, 20:39

Они - совершенно другие операционные системы. Android имеет очень трудные зависимости от ядра Linux. Это основано на Linux, не на POSIX. QNX не является системой Unix, но он обеспечивает API POSIX. Это не справка для выполнения Android.

Если у Вас есть устройство, это выполняет QNX, и Вы хотите выполнить Android на нем, Ваш единственный шанс состоит в том, чтобы выполнить виртуальную машину, в которой Вы выполняете Android, вместе с его ядром (который является Linux).

Обратите внимание, что можно запустить некоторые приложения Android на PlayBook. Если Вы хотите выполнить Android, получить планшет на базе Android.

Вы можете выполнять Android на PlayBook — не сверху QNX, а вместо него. Это требует полностью джейлбрекинга устройства (т.е. способность заменить загрузчик, не просто получив права администратора в BlackBerryOS), который, кажется, не в настоящее время возможен.

0
27.01.2020, 20:39

Теги

Похожие вопросы