Solaris

未找到 stat 命令

  • July 21, 2018

我想在我的 unix shell /usr/bin/ksh 中執行 stat 命令:

輸入:

/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

stat命令不是標準的。在 Linux 上有一個,在嵌入式 Linux 上有一個更受限制的,在 FreeBSD 和 OSX 上有一個完全不同的選項,而在大多數其他 Unix 變體(如 Solaris、AIX 和 HP-UX)上都沒有。您的語法看起來像是用於 Linux 的stat.

您顯然正在執行一個沒有stat. 那時你可能都沒有date -d

列出文件訪問時間的唯一可移植方法是使用ls.

ls -log -u find.txt

這以繁瑣的格式提供了您需要的不太精確的輸出。

如果您可以安裝GNU coreutils,請安裝並使用它的statdate命令。許多現代 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]'

引用自:https://unix.stackexchange.com/questions/287008