フォルダの中に動画mp4や音楽mp3のファイルがごちゃまぜに入ってる状態で、動画mp4のサイズだけを合計して一発で出すワンライナー。
$ ls -l *mp4 | awk '{a+=$5; print $5,$9} END{print "-----\n" a; print "=====\n" a/1024/1024/1024, "GB"}'
合計447.521GB と分かる。
mp4またはts を合計したいときはこう。
$ ls -l *{mp4,ts} | awk '{a+=$5; print $5,$9} END{print "-----\n" a; print "=====\n" a/1024/1024/1024, "GB"}'
合計483.637GB と分かる。
mp3だけ合計したいときはこう。
$ ls -l *mp3 | awk '{a+=$5; print $5,$9} END{print "-----\n" a; print "=====\n" a/1024/1024/1024, "GB"}'
合計0.131936GB と分かる。
mp3だけ合計したのをMB単位で表記したいときはこう。
$ ls -l *mp3 | awk '{a+=$5; print $5,$9} END{print "-----\n" a; print "=====\n" a/1024/1024, "MB"}'
合計135.103MB と分かる。
よし。awkでの足し算に慣れてきたぞ。
ファイル容量がギガバイトサイズのもの(主に動画)だけをgrepして、そのファイルサイズとファイル名だけを表示するワンライナー。
$ ls -sharltrS | egrep 'ts|mp4' | egrep '.*[0-9]\.[0-9]G.*' | awk '{a+=$1; print $6,$10}' | head -n 10
ファイルサイズが3.xGBのものだけ表示する。
$ ls -saltS | head -n 50 | awk '{a+=$6; print a/1024/1024/1024 "GB",$6/1024/1024/1024,$6,$10}' | grep 'GB\ 3'
直近で格納したmp4ファイルのうち、サイズが大きいもの50個を下から順に並べて、GBで表示するにはこう。
$ ls -lrS | tail -n 50 | grep mp4 | awk '{a+=$5; print $5/1024/1024 "GB",$9}'
サーバ(fedora)に↑のファイルがあるのを、手元のmacOSに転送してブルーレイに焼きたい。
リストに落とす。
$ ls -lrS | tail -n 50 | grep mp4 | awk '{a+=$5; print $5/1024/1024 "GB",$9}' >> to_mv_20211107.txt
$ cat to_mv_20211107.txt | awk '{print $2}' | xargs -i scp {} macOS_user_name@192.168.3.123:/Users/macOS_user_name/Downloads/BD-R/
scpでリストから転送するにはこう。
rsyncでやってみる。
$ rsync -av --progress --partial-dir=/tmp --files-from=to_mv_20211107_02.txt . macOS_user_name@192.168.3.123:/Users/macOS_user_name/Downloads/BD-R/
仕組みはコレ。