запустить команду по скрипту в алфавитном порядке

Я пытаюсь установить временную метку кучи файлов на моем устройстве Android с помощью оболочки adb.

По той или иной причине прикосновение с определенной установленной меткой времени не работает. Кроме того, файловое глобус не работает на оболочке Android-приложения Android, используя touch.

Поэтому я прибегал к сценарию оболочки, который запускает команду касания ко всем файлам в папке.

for file in `ls`; do touch "$file"; done 

проблема заключается в том, что она не запускает команду в каком-либо конкретном порядке, когда я хочу, чтобы она выполнялась в обратном алфавитном порядке с гарантией, что она будет выполняться серийно, так что отметка времени a.png всегда будет позже, чем b.png.

Это возможно?

Вы можете использовать touch, чтобы установить время в будущем.

 T=$(date +%s) for file in $(ls | sort -r); do touch -t $(date '+%Y%m%d%H%I.%S' --date="@$T") $file let T=$T+1 done 

Если на устройстве отсутствует sort , убедитесь, что у вас установлен busybox .

Это возможно?

Да и нет. Не с высокой производительностью. Суть заключается в том, что вы указываете, что «временная метка a.png всегда более поздняя, чем b.png», которая, как я полагаю, связана с тем, как некоторые Makefile общаются с ними. Проблема возникает, если ваша файловая система только сохраняет печать CTIME с разрешением в одну секунду. Поэтому я предлагаю следующее:

 for file in `ls | sort -r`; do touch "$file"; sleep 1; done 

Да, я знаю, sleep довольно важен. Но это, скорее всего, то, что вам нужно make работает предсказуемо.