初歩的ですが、いつも都度調べちゃうので備忘のために。
例えば下の出力結果のうち、所有権が「user」のtxtファイルのみバックアップファイル(.bak)を作りたいとする。
ついでに作成日時をバックアップファイル名に記載する(例:aaa.txt.20170401-1200.bak)
# ls -l
(1) (2) (3) (4) (5) (6) (7) (8) (9)
-rw-r--r-- 1 user group 10 Apr 1 00:00 aaa.txt
-rw-r--r-- 1 root group 10 Apr 2 00:00 bbb.txt
-rw-r--r-- 1 user group 10 Apr 2 00:00 ccc.txt
そんなときはこんな感じでシェルスクリプトを書く。
sample.sh
# ! /bin/sh
TSTMP=`date "+%Y%m%d-%H%M"`
ls -l | grep user | while read LINE
do
FILE=`echo ${LINE} | awk '{print $9}'`
cp -p ${FILE} ${FILE}.${TSTMP}.bak
done
最初に戻って初歩的ですが、いろんなファイルに対して何かする処理をやりたいときになんだかんだで重宝します。
(数100ファイルとかあったらいちいち手を動かしてられないっすもんね・・・)
そんな感じです!