Menggunakan find
pada file tertentu di $filepath
:
if [ -n "$(find "$filepath" -prune -size +1000000c)" ]; then
printf '%s is strictly larger than 1 MB\n' "$filepath"
fi
Ini menggunakan find
untuk menanyakan file tertentu di $filepath
untuk ukurannya. Jika ukurannya lebih besar dari 1000000 byte, find
akan mencetak nama jalur file, jika tidak maka tidak akan menghasilkan apa-apa. -n
test benar jika string memiliki panjang bukan nol, yang dalam hal ini berarti find
menghasilkan sesuatu, yang pada gilirannya berarti file tersebut lebih besar dari 1 MB.
Anda tidak bertanya tentang ini:Menemukan semua file biasa yang lebih besar dari 1 MB di bawah beberapa $dirpath
dan mencetak pesan singkat untuk masing-masing:
find "$dirpath" -type f -size +1000000c \
-exec printf '%s is larger than 1 MB\n' {} +
Potongan kode ini harus portabel untuk Unix apa pun.
Perhatikan juga bahwa menggunakan <
atau >
dalam tes akan menguji apakah dua string yang terlibat mengurutkan dengan cara tertentu secara leksikografis. Operator ini tidak melakukan perbandingan numerik. Untuk itu, gunakan -lt
("kurang dari"), -le
("kurang dari atau sama dengan"), -gt
("lebih besar dari"), atau -ge
("lebih besar dari atau sama dengan"), -eq
("sama dengan"), atau -ne
("tidak sama dengan"). Operator ini melakukan perbandingan bilangan bulat.