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
stat
コマンドは標準ではありません。 Linuxに1つ、組み込みLinuxにさらに制限されたもの、FreeBSDとOSXでまったく異なるオプションを持つものがあり、Solaris、AIX、HP-UXなどの他のほとんどのUnixバリアントにはありません。構文は、Linuxのstat
を想定したものになっています。
どうやらstat
なしでシステムを実行しているようです。その場合、おそらくdate -d
もありません。
ファイルのアクセス時間を一覧表示する唯一の移植可能な方法は、ls
を使用することです。
ls -log -u find.txt
これにより、面倒な形式で、必要な出力よりも精度が低くなります。
GNU coreutils をインストールできる場合は、インストールして、その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]'
エラーがシェルを示していることを確認してください。
/usr/bin/ksh:
「統計」が見つかりません:
stat: not found
ご使用のオペレーティングシステムは「stat」コマンドを提供していますか?詳細なガイダンスとして、オペレーティングシステムとそのバージョンに関する詳細情報を提供する必要があります。
「PATH」環境変数にも問題がある可能性があります。
指定しなかったシステムに完全に依存します。パッケージマネージャーが提供するバイナリをインストールする代わりに、プログラムをソースからコンパイルすることもできます。これを行うには、最初に coreutils source (執筆時点ではcoreutils-8.0
)をダウンロードする必要があります。
アーカイブ内にある場合は、アーカイブを解除してから、ソースのディレクトリに入ります。コマンド./configure
を使用してconfigureスクリプトを実行し、終了するのを待ちます。 configureが完了したら(大きなエラーなしで)、コマンドmake
を使用してmakeを実行します。
Makeの完了にかかる時間は、アプリケーションのサイズと複雑さに応じて、30秒から文字通り数日です。ただし、この場合、makeステップに数分かかることはほとんどありません。
プログラムのコンパイルが完了したら(エラーなしで)、コマンドmake install
を使用してプログラムをインストールするか、rootユーザーでない場合はSudo make install
をインストールします。これには数秒しかかかりませんが、場合によってはさらに時間がかかることもあります。完了したら、coreutils
ディレクトリを終了して、削除に進むことができます。
./configure && make && make install
と入力します。詳細については、次のページを参照してください。