ファイルの日付を明日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 file
。l
-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