команда stat не найдена

Я хочу выполнить команду stat в моей оболочке unix / usr / bin / ksh:

Входные данные:

/bin/date +%Y%m%d%H%M%S -d "$(/usr/bin/stat -c %x find.txt)" 

И выход:

 /usr/bin/ksh: stat: not found 

Моя система: SunOS 5.10 Generic_150400-23 sun4v sparc sun4v

Вы можете мне помочь?

3 Solutions collect form web for “команда stat не найдена”

Команда stat не является стандартной. В Linux есть более ограниченная версия встроенной Linux, одна из которых имеет совершенно разные опции для FreeBSD и OSX, и ни один из них не используется в большинстве других вариантов Unix, таких как Solaris, AIX и HP-UX. Ваш синтаксис выглядит так, как будто он предназначен для stat Linux.

Очевидно, вы используете систему без stat . Вероятно, у вас нет date -d .

Единственный переносимый способ указать время доступа к файлу – ls .

 ls -log -u find.txt 

Это дает менее точную информацию о том, что вам нужно, в громоздком формате.

Если вы можете установить GNU coreutils , сделайте это и используйте свои команды stat и date . Многие современные версии Unix имеют простой способ установки GNU-утилит.

В качестве альтернативы, используйте Perl, который очень часто устанавливается в Unix-системах. Вызовите stat чтобы прочитать временную метку файла и localtime чтобы разбить временную метку на дату и время.

 perl -e '@stat = stat($ARGV[0]); @time = localtime($stat[9]); printf "%04d%02d%02d%02d%02d%02d\n", $time[5]+1900, @time[4,3,2,1,0]' 

Довольно уверен, что ваша ошибка означает, что ваша оболочка:

 /usr/bin/ksh: 

Не удается найти «stat»:

 stat: not found 

Предоставляет ли ваша операционная система команду «stat»? Вам необходимо предоставить дополнительную информацию о вашей операционной системе и ее версию для дальнейших указаний.

У вас может также возникнуть проблема в переменной среды «PATH».

Это полностью зависит от вашей системы, которую вы не указали. Альтернативой установке двоичного файла, предоставляемого вашим менеджером пакетов, является компиляция программы из источника. Для этого сначала необходимо загрузить источник coreutils-8.0 ( coreutils-8.0 на момент написания). Если он находится в архиве, распакуйте его, а затем введите в каталог источника. Запустите скрипт configure с помощью команды ./configure , а затем дождитесь его завершения. После завершения настройки (без серьезных ошибок) запустите make с командой make . Время, необходимое для завершения работы, может составлять от 30 секунд до буквально дней, в зависимости от размера и сложности приложения. В этом случае, однако, очень маловероятно, что шаг make займет несколько минут. После make make компиляция программ (без ошибок), установите программы с помощью команды make install или если вы не являетесь пользователем root sudo make install . Это займет всего несколько секунд, хотя в некоторых случаях это может занять больше времени. После завершения вы можете выйти из каталога coreutils, а затем приступить к его удалению. Единственными требованиями для работы (наряду с соответствующими библиотеками и зависимостями *) являются GCC или CC и утилита make.

Чтобы выполнить все эти шаги с помощью одной команды, вы можете ввести ./configure && make && make install .
Полный список зависимостей для coreutils: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed .

Для получения дополнительной информации см. Следующие страницы:
http://linux.die.net/man/2/stat http://www.computerhope.com/unix/stat.htm

  • Как вызвать универсальную функцию без импорта ее файла?
  • Как распечатать конкатенацию строк в Korn Shell
  • Синтаксис инструкции ksh if
  • Как вызвать скрипт KSH из другого скрипта KSH
  • KSH, в то время как цикл вызывает проблемы
  • Linux и Unix - лучшая ОС в мире.