質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

615閲覧

Linuxコマンド、ls -ltuにてatimeの降順でソートに関して

tomuziso

総合スコア40

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2018/06/04 10:18

linuxコマンドの ls -ltuでファイルの最終参照日時でとあるディレクトリの情報を見ています。

$ ls -ltu total 48 -rw-r--r-- 1 user staff 1059 6 4 19:09 LICENCE -rw-r--r-- 1 user staff 94 6 4 19:09 Gemfile -rw-r--r-- 1 user staff 1037 6 4 19:09 Rakefile -rw-r--r-- 1 user staff 3609 6 4 19:09 Readme.md -rw-r--r-- 1 user staff 501 6 4 19:09 scenarios.yml -rw-r--r-- 1 user staff 901 6 4 19:09 pry-rails.gemspec -rw-r--r-- 1 user staff 0 6 4 18:46 example.rb drwxr-xr-x 11 user staff 352 6 4 18:16 spec drwxr-xr-x 26 user staff 832 6 4 18:16 scenarios drwxr-xr-x 4 user staff 128 6 4 18:16 lib

実行結果は上記です。ファイルの最終参照日時の降順でソートされていることが意図した結果です。

疑問なのはpry-rails.gemspecより上のファイルが全部同じ時刻を指しており、
lsコマンドを実行した時の時間に変更されている、ということです。

こちらはlsコマンドしか実行していないのですが、
**「lsコマンドでファイルの参照日時が変更される」**ということでしょうか?

しかしいくらlsコマンドを実行してもexample.rbだけ参照日時が変更されてないので、何か別の原因があると思うのですが検討が付きません。

分かる方いましたらお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

lsで参照日時が変更される可能性があるのは、ディレクトリとシンボリックリンクだけです。
一般ファイルの場合はlsが中身を読むことはないので、参照日時は変更されません。
参照日時が変更されたのは別の原因でしょう。

投稿2018/06/04 11:32

otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomuziso

2018/06/04 13:51

回答ありがとうございます。 やはり`ls`だけでは参照日時は変更されませんよね・・・ しかし、現状だと`ls -ltu`を叩くたびに日時が最新の時間に更新されています。 現在の作業ディレクトリがgit cloneしてきたものであるのも何か関係しているのでしょうか。 全く別のローカルディレクトリで試した所日時は変更されてないので怪しいですが・・・
otn

2018/06/04 14:30

例えば、vi を起動して、数秒待って :r !ls -ltu したらどうなりますか?
tomuziso

2018/06/04 14:38

上記のコマンドをvim上で打ち込んでみた所、今度は時間が経っても参照日時は更新されなくなりました。
otn

2018/06/04 14:49

ということは、lsは無関係ということが分かりましたね。 元に戻って、コマンドラインで、type ls は?
tomuziso

2018/06/04 14:56

$ type ls ls is /bin/ls このような出力になります。
otn

2018/06/04 15:37

そうすると、あと思いつくのは、echo $PROMPT_COMMAND
tomuziso

2018/06/04 16:26

echo $PROMPT_COMMAND の結果は何も帰ってきませんでした。 と、ここまで来たところで、怪しい所見て回っていたら原因が分かったかもしれません。 zshrcにてvcs_infoを読み込んで、ファイルに対してgitの差分が出たかチェックする記述をしていました。 試しに以下の記述を削除してみると、lsを何回叩いても参照日時に変化がないので、こちらでプロンプトを叩く毎?にファイルに対して参照しにいっていた、という感じでした。 autoload -Uz vcs_info setopt prompt_subst zstyle ':vcs_info:git:*' check-for-changes true zstyle ':vcs_info:git:*' stagedstr "%F{magenta}!" zstyle ':vcs_info:git:*' unstagedstr "%F{yellow}+" zstyle ':vcs_info:*' formats "%F{cyan}%c%u[%b]%f" zstyle ':vcs_info:*' actionformats '[%b|%a]'
otn

2018/06/04 16:33

ああ、zshですか。zshの設定はよく分からない。 bashだと、PROMPT_COMMANDが、プロンプトを出す毎に動くコマンドの設定です。 やはりその辺でしたか。
tomuziso

2018/06/04 16:38

夜遅くまでありがとうございます。zshでした。最初に記載しておけばよかったです、申し訳ないです。 プロンプト叩く毎に何かが参照していると早めに気付くことが出来れば、と言った感じですね・・・ ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問