find folder1 folder2 -iname '*.txt' -print0 | du --files0-from - -c -s | tail -1
Ini akan melaporkan penggunaan ruang disk dalam byte dengan ekstensi:
find . -type f -printf "%f %s\n" |
awk '{
PARTSCOUNT=split( $1, FILEPARTS, "." );
EXTENSION=PARTSCOUNT == 1 ? "NULL" : FILEPARTS[PARTSCOUNT];
FILETYPE_MAP[EXTENSION]+=$2
}
END {
for( FILETYPE in FILETYPE_MAP ) {
print FILETYPE_MAP[FILETYPE], FILETYPE;
}
}' | sort -n
Keluaran:
3250 png
30334451 mov
57725092729 m4a
69460813270 3gp
79456825676 mp3
131208301755 mp4
Sederhana:
du -ch *.txt
Jika Anda hanya ingin menampilkan total ruang yang digunakan, maka:
du -ch *.txt | tail -1
Inilah cara untuk melakukannya (di Linux, menggunakan GNU coreutils du
dan sintaks Bash), menghindari praktik buruk:
total=0
while read -r line
do
size=($line)
(( total+=size ))
done < <( find . -iname "*.txt" -exec du -b {} + )
echo "$total"
Jika Anda ingin mengecualikan direktori saat ini, gunakan -mindepth 2
dengan find
.
Versi lain yang tidak memerlukan sintaks Bash:
find . -iname "*.txt" -exec du -b {} + | awk '{total += $1} END {print total}'
Perhatikan bahwa ini tidak akan berfungsi dengan baik dengan nama file yang menyertakan baris baru (tetapi yang memiliki spasi akan berfungsi).
Cara mengakses Team Foundation Server (TFS) dari Linux
Periksa batas FD terbuka untuk proses tertentu di Linux