ファイルの日付を明日の21:00に変更したい。タッチを使用しましたが、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のパラメーターを使用したり、コンピューターの構成を変更したりせずに、この動作を変更するにはどうすればよいですか? (これは挑戦のためです)
ls
には2つの時間表示形式があります。
目的は、水平方向のスペースを確保することであり、情報でユーザーを圧倒することではありません。 「今年から」を表示することは、現在の年を表示して、それが実際に現在の年であることをユーザーに通知するよりも明白です。非常に古いファイルの場合、正確な時刻が重要になることはめったにありません。将来の日付はまれです。
GNU ls オプション--full-time
があり、ファイルの時間(年、月、日、時、分、秒、ナノ秒、タイムゾーンオフセット)がいつであるかに関係なく表示されます。オプション--time-style
を使用して出力形式を調整できます。
問題が解決しました。問題は、日付が未来の場合、時間ではなく年が表示されることです。
簡単な例を次に示します。touch file
とl
は
-rw-r--r-- 1 ABCD DEF 0 sept. 29 12:01 file
whicは正常です。将来的に日付を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