私のUnixシェル/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
ベストアンサー1
このstat
コマンドは標準ではありません。 Linuxには1つあり、Embedded Linuxにはより制限的なオプションがあり、FreeBSDとOSXにはまったく異なるオプションがあり、他のほとんどのUnixバリアント(Solaris、AIX、HP-UXなど)にはありません。あなたの構文はLinuxに固有のようですstat
。
あなたは明らかにstat
。date -d
ファイルアクセス時間をリストする唯一の移植可能な方法はls
。
ls -log -u find.txt
これは面倒な形式であまり正確でない出力を提供します。
設置可能な場合GNUコアツール、そうし、対応し、stat
コマンドdate
を使用します。多くの最新のUnixバリアントには、GNUユーティリティを簡単にインストールする方法があります。
あるいは、UnixシステムによくインストールされるPerlを使用してください。呼ぶ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]'