lsを使用してファイルのタイムスタンプを変更し、年の代わりに時間を表示します。

lsを使用してファイルのタイムスタンプを変更し、年の代わりに時間を表示します。

ファイルの日付を明日21時に変更したいです。タッチを使用しますが、入力すると時の代わりにls -lファイルの年が表示されます。

-rw-r--r-- 1 ABCD DEF   0 sept. 30  2014 test01
-r-xr-xr-x 1 ABCD DEF   15 sept. 29 09:26 test02

たとえば、「2014」は明確に表示されますが、「21:00」は表示されません。奇妙なことは、実行するとtouch --date "1 hour ago" test01正しく表示されますがtouch --date "+1 hour" test01機能しないことです。また、emacsを使用してファイルを編集して保存すると、年の代わりに時間が表示されます。

これは普通ですか? lsのパラメータを使用したり、コンピュータの設定を変更せずにこの動作をどのように変更できますか? (挑戦のためのものです)

答え1

ls時間表示形式には2つあります。

  • 過去6ヶ月間のタイムスタンプ:月、日、時、分。
  • その他のタイムスタンプ(将来または6ヶ月以上)の場合:年、月、日。

目標は、水平空間を確保し、情報でユーザーを圧倒しないことです。 「今年の開始」を表示することは、現在の年を表示し、ユーザーが実際に現在の年であることをユーザーに知らせるよりもはっきりしています。非常に古いファイルの場合、正確な時間は重要ではありません。将来の日付はまれです。

GNU言語--full-timeその時間に関係なく、ファイルの合計時間(年、月、日、時、分、秒、ナノ秒、タイムゾーンオフセット)を表示するオプションがあります。オプションを使用して出力形式を調整できます--time-style

答え2

問題が解決しました。問題は、日付が将来の場合、時間の代わりに年が表示されることです。

以下は簡単な例ですtouch filel

-rw-r--r-- 1 ABCD DEF 0 sept. 29 12:01 file

これは正常です。日付を15秒以降に変更しようとしないでください。touch --date "+15 seconds" fileすぐにls -l

-rw-r--r-- 1 ABCD DEF 0 sept. 29  2014 file

15秒後もls -l同様

-rw-r--r-- 1 rius_b users 0 sept. 29 12:03 file

関連情報