lsからファイル名とファイルサイズのみ出力する
filelist.sh [file | dir]
引数にファイル、ディレクトリを指定、ない場合はカレントディレクトリを処理。
ディレクトリを再帰的に処理する。
for文のfindコマンドは条件のファイル、ディレクトリ名をfilenameにセットしファイルがある限り繰り返す。
その後ファイルかディレクトリか判定しそれぞれ整形し出力する。
コメント部分はファイルサイズの合計を計算している。
#!/usr/bin/sh for filename in `find $1`; do if [ -d $filename ]; then printf "%8s %s\n" dir $filename else ls -lh $filename | awk '{ printf "%8s %s\n",$5,$9 }' # size=`ls -Al $filename | awk '{ print $5 }'` # total=`expr $total + $size` fi done #echo "Total $total"