web-dev-qa-db-ja.com

statコマンドが見つかりません

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

3
ANOUK_prog

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」環境変数にも問題がある可能性があります。

1
smokes2345

指定しなかったシステムに完全に依存します。パッケージマネージャーが提供するバイナリをインストールする代わりに、プログラムをソースからコンパイルすることもできます。これを行うには、最初に coreutils source (執筆時点ではcoreutils-8.0)をダウンロードする必要があります。

アーカイブ内にある場合は、アーカイブを解除してから、ソースのディレクトリに入ります。コマンド./configureを使用してconfigureスクリプトを実行し、終了するのを待ちます。 configureが完了したら(大きなエラーなしで)、コマンドmakeを使用してmakeを実行します。

Makeの完了にかかる時間は、アプリケーションのサイズと複雑さに応じて、30秒から文字通り数日です。ただし、この場合、makeステップに数分かかることはほとんどありません。

プログラムのコンパイルが完了したら(エラーなしで)、コマンドmake installを使用してプログラムをインストールするか、rootユーザーでない場合はSudo make installをインストールします。これには数秒しかかかりませんが、場合によってはさらに時間がかかることもあります。完了したら、coreutilsディレクトリを終了して、削除に進むことができます。

ノート

  • これが(適切なライブラリと依存関係*と共に)機能するための唯一の要件は、GCCまたはCCとmakeユーティリティです。
  • これらすべての手順を1つのコマンドで実行するには、./configure && make && make installと入力します。
  • Coreutilsの依存関係の完全なリストは次のとおりです:Bash、Binutils、Coreutils、Diffutils、GCC、Gettext、Glibc、Grep、Make、Perl、Sed

参考文献

詳細については、次のページを参照してください。

0
Interesting...