天天看點

[20130226]ls -l顯示的時間問題.txt

[20130226]ls -l顯示的時間問題.txt

# touch --date='2013-01-01 07:01:00' aa.txt

# touch --date='2012-09-01 07:01:00' bb.txt

# touch a.txt b.txt c.txt

#  ls -l

-rw-r--r-- 1 root root    0 Jan  1 07:01 aa.txt

-rw-r--r-- 1 root root    0 Feb 26 09:20 a.txt

-rw-r--r-- 1 root root    0 Sep  1 07:01 bb.txt

-rw-r--r-- 1 root root    0 Feb 26 09:20 b.txt

-rw-r--r-- 1 root root    0 Feb 26 09:20 c.txt

個人非常不習慣這種顯示格式(顯示的好像是修改時間),沒有年的顯示,非常容易混淆,我希望看到年月日,實際上

而且不是英文的日期.今天仔細看了ls的man文檔,發現定義--time-style參數,就可以很好的滿足自己的條件.

--補充如果修改日期在目前日期減去半年,才會出現年的顯示.

#  date

Tue Feb 26 11:09:19 CST 2013

#  touch --date='2012-08-27 08:01:00' bb.txt

#  /bin/ls -l

total 4

-rw-r--r-- 1 root root    0 Feb 26 09:42 aa.txt

-rw-r--r-- 1 root root    0 Aug 27  2012 bb.txt

#  touch --date='2012-08-28 08:01:00' bb.txt

-rw-r--r-- 1 root root    0 Aug 28 08:01 bb.txt

---

# ls -l --time-style=+'%Y-%m-%d %H:%M:%S'

-rw-r--r-- 1 root root    0 2013-01-01 07:01:00 aa.txt

-rw-r--r-- 1 root root    0 2013-02-26 09:20:05 a.txt

-rw-r--r-- 1 root root    0 2012-09-01 07:01:00 bb.txt

-rw-r--r-- 1 root root    0 2013-02-26 09:20:05 b.txt

-rw-r--r-- 1 root root    0 2013-02-26 09:20:05 c.txt

這樣顯示清晰多了.

修改/etc/profile.d/colorls.sh檔案如下[注修改前最好做好檔案的備份,避免改錯回不來!,我的使用環境是centos6.2]:

 cat /etc/profile.d/colorls.sh

# color-ls initialization

#when USER_LS_COLORS defined do not override user LS_COLORS, but use them.

if [ -z "$USER_LS_COLORS" ]; then

  #ts="--time-style=+"%Y-%m-%d %H:%M:%S""

  alias ll='ls -l --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null

  alias l.='ls -d .* --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null

  # Skip the rest for noninteractive shells.

  [ -z "$PS1" ] && return

  COLORS=

  for colors in "$HOME/.dir_colors.$TERM" "$HOME/.dircolors.$TERM" \

      "$HOME/.dir_colors" "$HOME/.dircolors"; do

    [ -e "$colors" ] && COLORS="$colors" && break

  done

  [ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS.256color" ] && \

      [ "x`tty -s && tput colors 2>/dev/null`" = "x256" ] && \

      COLORS="/etc/DIR_COLORS.256color"

  if [ -z "$COLORS" ]; then

    for colors in "/etc/DIR_COLORS.$TERM" "/etc/DIR_COLORS" ; do

      [ -e "$colors" ] && COLORS="$colors" && break

    done

  fi

  # Existence of $COLORS already checked above.

  [ -n "$COLORS" ] || return

  eval "`dircolors --sh "$COLORS" 2>/dev/null`"

  [ -z "$LS_COLORS" ] && return

  grep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null && return

fi

alias ll='ls -l --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null

alias l.='ls -d .* --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null

alias ls='ls --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null