私の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]'
答え2
エラーがシェルを意味することを確認してください。
/usr/bin/ksh:
「統計」が見つかりません:
stat: not found
オペレーティングシステムで "stat"コマンドを提供しますか?追加の指示を受けるには、オペレーティングシステムとそのバージョンに関する追加情報を提供する必要があります。
「PATH」環境変数に問題がある可能性があります。
答え3
それはすべてシステムによって異なり、指定されていません。パッケージマネージャが提供するバイナリをインストールする別の方法は、ソースコードからプログラムをコンパイルすることです。これを行うには、まずダウンロードする必要があります。coreutils ソースコード(coreutils-8.0
作成時)。
アーカイブにある場合は、解凍してソースディレクトリに移動します。コマンドを使用して構成スクリプトを実行し./configure
、完了するまで待ちます。設定が完了したら(大きなエラーなし)、makeコマンドを実行しますmake
。
makeを完了するのにかかる時間は、アプリケーションのサイズと複雑さによって30秒から数日まで異なります。しかし、この場合、makeステップは数分かかることはありません。
makeがプログラムをエラーなくコンパイルした後は、コマンドを使用してプログラムをインストールするか、make install
ルートでない場合はプログラムをインストールしてくださいsudo make install
。これには数秒しかかかりませんが、場合によっては時間がかかることがあります。完了したら、coreutils
ディレクトリを終了して削除を続行できます。
ノート
- 動作するための唯一の要件(および適切なライブラリと依存関係*)は、GCCまたはCCおよびmakeユーティリティです。
- 1つのコマンドでこれらすべての手順を実行するには、を入力します
./configure && make && make install
。 - coreutilsの完全な依存関係のリストは次のとおりです。Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed。
引用する
詳しくは、次のページをご覧ください。