11 March 2015

(Linux, UNIX) lsで表示される日時形式の設定

Linux/Unixシェルのlsで表示される日時形式と、変更方法

Ubuntuのbashシェルの場合

毎回コマンドラインで設定することもできるが、~/.bashrcにalias設定しておくと便利

~/.bashrc の該当部付近抜粋
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'
 
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi
 
# some more ls aliases
alias ls='ls --time-style="+%Y-%m-%d %H:%M:%S"'
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

何も設定しない場合(デフォルト)の表示

$ ls -l
-rw------- 1 user user  750827  3月  6 08:38 imgp4307.jpg
$ LANG=C;ls -l
-rw------- 1 user user  750827 Mar  6 08:38 imgp4307.jpg

いろいろな設定例

$ ls -l --time-style="+%Y-%m-%d %H:%M:%S"
-rw------- 1 user user  750827 2015-03-06 08:38:48 imgp4307.jpg
$ ls -l --time-style=full-iso
-rw------- 1 user user  750827 2015-03-06 08:38:48.000000000 +0900 imgp4307.jpg
$ ls -l --time-style=long-iso
-rw------- 1 user user  750827 2015-03-06 08:38 imgp4307.jpg
$ ls -l --time-style=iso
-rw------- 1 user user  750827 03-06 08:38 imgp4307.jpg
$ ls -l --time-style=locale
-rw------- 1 user user  750827  3月  6 08:38 imgp4307.jpg

次のようなマニアックな指定もできる

$ newline='
>'
$ ll --time-style="+%Y-%m-%d$newline%m/%d %H:%M"
-rw-rw-r--  1 user user     132 03/05 07:28 新しいファイル.txt
-rw-rw-r--  1 user user     103 2014-08-17 古いファイル.txt

FreeBSDのcshの場合

何も設定しないデフォルトの表示

$ ls -l
-rw-rw-rw-  1 user user  186428  1月  5 23:10 imgp2557.jpg

いろいろな設定例

$ ls -l -T
-rw-rw-rw-  1 user user  186428  1月  5 23:10:16 2015 imgp2557.jpg
$ ls -l -D "%Y/%m/%d %H:%M:%S"
-rw-rw-rw-  1 user user  186428 2015/01/05 23:10:16 imgp2557.jpg

~/.cshrcにalias設定しておく例

~/.cshrc の該当部付近抜粋
alias h     history 25
alias j     jobs -l
alias la    ls -a
alias lf    ls -FA 
alias ll    ls -laFG -D "%y/%m/%d\ %H:%M"
alias ls    ls -FG -D "%y/%m/%d\ %H:%M"
 
# A righteous umask
umask 22