
unixSolarisシステムでファイルのアクセス時間と変更時間を取得したいと思います。このSolarisコンピュータでは `statsコマンドが見つかりません。ファイルのアクセス時間と修正時間を見つけるために使用するコマンドを提案しますか?私は以下を使用しました(明らかに動作しません):
sftp> truss -f -v 'lstat,lstat64' ls -d 140901.log
Invalid command.
コマンドを提案できますか?
答え1
truss
コンピュータにインストールされている可能性が高く、問題はsftp
シェルプロンプトではなくシェルプロンプトから呼び出すことです。
後者の場合、Solaris 標準コマンドを使用してアクセスおよび変更時間を取得する方法は次のとおりです。
$ truss -f -v 'lstat,lstat64' ls -d . 2>&1 | grep '[am]t ='
29879: at = Jul 16 17:20:56 CEST 2014 [ 1405524056.485059303 ]
29879: mt = Aug 18 23:34:35 CEST 2014 [ 1408397675.814979313 ]
答え2
このstat
コマンドはPOSIXによって定義されておらず、一部の* nixシステムでは使用できません。実際、POSIX で定義した CLI ユーティリティは時間を返しません。使用は、perl
ほとんどの*nixシステムで機能する方法です。以下は、シェルスクリプトで使用できる1行のコードです。
perl -sle '@s = stat($filename); print "atime: $s[8]\nmtime:$s[9]"' -- -filename=foo
答え3
/usr/bin/stat
私のSolaris 11システムでは。これはパッケージの一部としてインストールされますgnu-coreutils
。
また、サブコマンドではtruss
ありません。を実行する代わりにセッションsftp
を実行したい場合があります。ssh
sftp
truss