bash触ってる時によくやること
大量のファイルをコピーしてる時の進捗を表示したい
while true
do
date
ls -1 input/ | wc -l
sleep 5
done
出力イメージ
Thu Sep 19 10:25:49 UTC 2019
331
Thu Sep 19 10:25:54 UTC 2019
332
ちょっと見やすく?以下のような感じにしてもいいですね。
while true
do
DATETIME=$(date +%Y%m%d_%H%M%S)
FILECOUNT=$(ls -1 input/ | wc -l )
echo "count: ${FILECOUNT}, time: ${DATETIME} "
sleep 5
done
出力イメージ
count: 347, time: 20190919_103048
count: 347, time: 20190919_103053
count: 348, time: 20190919_103058
とめる時はctrl + c してください。
ファイルのサイズをざっくり知りたい時
$ ls -lha
total 856K
drwxr-xr-x 1 root root 4.0K May 12 15:35 .
drwxr-xr-x 1 root root 4.0K Apr 26 2018 ..
-rw-r--r-- 1 root root 12K May 12 17:43 alternatives.log
drwxr-xr-x 1 root root 4.0K May 12 17:43 apt
-rw-r--r-- 1 root root 35K Apr 26 2018 bootstrap.log
-rw-rw---- 1 root utmp 0 Apr 26 2018 btmp
-rw-r--r-- 1 root root 407K May 12 17:43 dpkg.log
-rw-r--r-- 1 root root 32K Apr 8 23:37 faillog
-rw-r--r-- 1 root root 2.9K May 12 17:43 fontconfig.log
-rw-rw-r-- 1 root utmp 286K Apr 8 23:37 lastlog
-rw------- 1 root root 63K Apr 8 23:37 tallylog
-rw-rw-r-- 1 root utmp 0 Apr 26 2018 wtmp
hオプションが単位をつけてくれます。
$ ls -ltr | grep 'G'
とかしてもいいですね
ディレクトリのサイズをざっくり知りたい時
容量逼迫した時の領域を特定するのによく使ってました。
$ du -h /var --max-depth=1
4.0K /var/tmp
928K /var/backups
20K /var/spool
4.0K /var/opt
4.0K /var/local
3.0M /var/log
4.0K /var/mail
553M /var/cache
13G /var/lib
13G /var
df -h とセットで使うことが多いですね。
該当の領域に cdしてdu、
値の大きいディレクトリにまたcdしてdu
。。。。でどこのディレクトリにやばいファイルがあるか特定したりします。
max-depthが階層を決めるオプションです。
ファイル数の多いディレクトリで最近更新されたファイルをざっくり見たい時
$ ls -ltr | tail
-rw-rw-r-- 1 root utmp 0 Apr 26 2018 wtmp
-rw-rw---- 1 root utmp 0 Apr 26 2018 btmp
-rw-r--r-- 1 root root 35330 Apr 26 2018 bootstrap.log
-rw------- 1 root root 64064 Apr 8 23:37 tallylog
-rw-rw-r-- 1 root utmp 292292 Apr 8 23:37 lastlog
-rw-r--r-- 1 root root 32032 Apr 8 23:37 faillog
drwxr-xr-x 1 root root 4096 May 12 17:43 apt
-rw-r--r-- 1 root root 2960 May 12 17:43 fontconfig.log
-rw-r--r-- 1 root root 416661 May 12 17:43 dpkg.log
-rw-r--r-- 1 root root 11742 May 12 17:43 alternatives.log
trオプションで時刻順、かつ一番下がもっとも最近の物に並んでくれます。
詳細な時刻を取得する
lsにfull-timeオプションをつけると、時刻を秒以下まで表示してくれます。
$ ls --full-time
total 4739260
drwxr-xr-x 2 root root 97505280 2019-09-20 11:19:12.917880914 +0000 dir_1
drwxr-xr-x 2 root root 97665024 2019-09-20 11:19:16.170149789 +0000 dir_2