находить: объединение нескольких операторов "-exec" не работает с toybox / Android? - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь выяснить это на телефоне Android под управлением Oreo / 8.0, с toybox 0.7.3-android.

Я пытаюсь получить список файлов внутри папки и соответствующий им mtime.Я запускаю эту команду:

find . -type f -exec stat -c %n {} \; -exec stat -c %y {} \;

или

find . -type f -exec stat -c %n "{}" \; -exec stat -c %y "{}" \;

В обоих случаях я получаю результат только при первом вызове «stat».Я наблюдаю за чем-то или это то, как toybox работает на Android?

1 Ответ

1 голос
/ 26 марта 2019

Если toybox не может сделать несколько exec, есть альтернативы.

В этом конкретном случае вы можете просто использовать один стат:

find . -type f -exec stat -c "$(echo -e "%n\n%y")" {} \;

# or just insert the newline verbatim in single quotes:
find . -type f -exec stat -c '%n
%y' {} \;

Для запуска нескольких команд (при условии, что пути не содержат символов новой строки):

find . -type f -print | while IFS= read -r f; do
    stat -c $n "$f";
    stat -c %y "$f";
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...