Gmake на FreeBSD: exec: «clang»: исполняемый файл не найден в $PATH

Если не установлены утилиты GNU, лучше всего, вероятно, perlиспользовать эти традиционные системы:

perl -MPOSIX -MFcntl -MFile::stat -le '
  setlocale(LC_TIME, "C");
  for (<*>) {
    $s = lstat $_ or die "$_: $!\n";
    print "$_ ". uc(strftime("%d-%b-%Y %I:%M:%S %p", localtime $s->mtime))
      if S_ISDIR($s->mode)
  }'

Это perlинтерфейс стандартного POSIX lstat()системного вызова, который получает метаданные файла и strftime()функцию форматирования дат.

Подробнее см. perldoc POSIX, perldoc -f lstat, perldoc -f stat, man lstat, man strftime.Мы используем локаль C для LC_TIME, поэтому мы получаем английские названия месяцев и PM/AMнезависимо от предпочтений пользователя.

Если установлено zsh:

zsh -c 'zmodload zsh/stat
        LC_ALL=C stat -nA times -LF "%d-%b-%Y %I:%M:%S %p" +mtime -- *(/) &&
          for f t ($times) printf "%s\n" "$f: ${(U)t}"'

Выше мы использовали perlс uc()и zshс ${(U)var}для преобразования меток времени в верхний регистр. В системах GNU вы могли бы использовать %^bдля всего -сокращения месяца в верхнем регистре, но это не похоже на то, что оно доступно в HP/UX.

0
19.05.2020, 05:43
0 ответов

Теги

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