Intereting Posts
ssh_exchange_identification: соединение закрыто удаленным хостом на машине vnx (linux) Manjaro Linux – кабель отсоединен, даже если подключен strace не находит функцию оболочки с ошибкой «Can not stat» Установите byobu (профили экрана) на FreeBSD Literal ia32-libs в 2017 году Определенный пользователь не может войти (после подключения телевизора), не может понять, почему Почему мне нужно указывать переменную для if, но не для echo? Как запустить keychain из gdm? Мониторинг и предупреждение пользователя при изменении настроек stty? Что означает «патч неожиданно заканчивается в середине линии»? Front-end для `~ / .config / mimeapps.list` Есть ли какая-нибудь обертка для запуска приложений с графическим интерфейсом под поддельным разрешением экрана? обоснование политики для требования, чтобы блочные устройства использовали размеры блоков степени два? Автоматический запуск скрипта bash при входе в систему Есть ли ограничение безопасности, препятствующее apache2 прослушиваться на высоком порту?

Альтернатива POSIX для предиката GNOME find -printf

Я бы хотел переписать эти 2 команды, чтобы они использовали только POSIX-совместимые коммутаторы :

find "$TARGET_DIR" -maxdepth 1 -type d -printf '(DIR) %f\n' find "$TARGET_DIR" -maxdepth 1 -type f -printf '%s %f ' -exec file -b {} \; 

-maxdepth 1 вероятно, можно заменить на -prune , но для -printf потребуется более сложное перенаправление.

Пытаться:

 find "$TARGET_DIR//." \( -name . -o -prune \) -type d -exec sh -c ' for f do f=${f%//.} f=${f%"${f##*[!/]}"} f=${f##*/} printf "(DIR) %s\n" "${f:-/}" done' sh {} + 

Это было бы проще для эквивалента -mindepth 1 -maxdepth 1 :

 find "$TARGET_DIR//." \( -name . -o -prune \) -type d -exec sh -c ' for f do printf "(DIR) %s\n" "${f##*/}" done' sh {} + 

Для второго:

 find "$TARGET_DIR//." ! -name . -prune -type f -exec sh -c ' for f do size=$(($(wc -c < "$f"))) printf %s "$size ${f##*/} " file -b -- "$f" done' sh {} +