LinuxでFreeBSDに変換する必要があるbashスクリプトがありますが、マニュアルページを正しい方法で読み取るには愚かすぎるようです。
スクリプトには1行あります。
date +%d -r "$file"
Linuxではうまく機能しますが、単に提供しています
date: illegal time format
FreeBSDから。
これLinuxのマニュアルページ-r
指定された参照ファイルを示します。
-r, --reference=FILE
display the last modification time of FILE
ここで私を混乱させるのはFreeBSD マニュアルページこのスイッチの同じ使用法を含むが、代替スイッチも提供する。
-r seconds
Print the date and time represented by seconds, where seconds is
the number of seconds since the Epoch (00:00:00 UTC, January 1,
1970; see time(3)), and can be specified in decimal, octal, or
hex.
-r filename
Print the date and time of the last modification of filename.
明らかに、上記のエラーメッセージは、指定されたファイル名の-r
代わりにスイッチパラメータでUNIXタイムスタンプを期待したために発生しました。
私が理解していないのは、スイッチの2番目の解釈を使用したいことをどのように明確に示すべきかです-r
。通貨コンテキストから推論する必要がある場合は、このコンテキストをどのように提供するのか混乱します。
誰が私に日付ユーティリティをどのように知らせるべきか、-r
ここでスイッチを使用したいユースケースは何であるかを説明できますか?
ベストアンサー1
-r
この使用法はソースにのみ表示されるようです。2015年5月7日。たぶんあなたのバージョンではまだこれをやっていませんか?
Revision 282608 - (view) (download) (annotate) - [select for diffs]
Modified Thu May 7 20:54:38 2015 UTC (12 months, 1 week ago) by delphij
date(1): Make -r behave like GNU's version when the option can not be
interpreted as a number, which checks the file's modification time and
use that as the date/time value.