Wednesday, 16 March 2016

[CLI] fallocate - câu lệnh bắt đầu bằng chữ FA, để tạo ra những gì mình không có

fallocate là tên của chương trình thực hiện công việc "allocate file" (tạo file) với kích thước tuỳ ý.

Cần 1 file trống 10MB, 1G, 10GB? không vấn đề, chỉ cần 1 câu lệnh và một chớp mắt là xong.
$ whatis fallocate
fallocate (1)        - preallocate space to a file
$ dpkg -S fallocate
util-linux: /usr/share/man/man1/fallocate.1.gz
util-linux: /usr/bin/fallocate
fallocate nằm trong package "util-linux", một package chứa không ít công cụ quan trọng mà đã giới thiệu ở các bài viết khác (có thể kể tới namei).

Thử tạo 3 file lần lượt có kích thước 1GB 2GB 3GB. Trạng thái trước khi chạy lệnh
$ df -h | grep DOROOT # xem dung lượng tổng, đã dùng, còn trống của ổ có tên  DOROOT
/dev/disk/by-label/DOROOT   30G   13G   16G  44% /


$ for i in 1G 2G 3G; do fallocate -l $i /tmp/file_$i ; df -h | grep DOROOT; done
/dev/disk/by-label/DOROOT   30G   14G   15G  48% /
/dev/disk/by-label/DOROOT   30G   16G   13G  55% /
/dev/disk/by-label/DOROOT   30G   19G  9.7G  66% /
$ ls -l /tmp/file*
-rw-r--r-- 1 root root 1073741824 Feb 24 06:20 /tmp/file_1G
-rw-r--r-- 1 root root 2147483648 Feb 24 06:20 /tmp/file_2G
-rw-r--r-- 1 root root 3221225472 Feb 24 06:20 /tmp/file_3G
File này nội dung hoàn toàn trắng:
$ fallocate -l 10 /tmp/file_small
$ xxd /tmp/file_small
0000000: 0000 0000 0000 0000 0000                 ..........

Khi cần tạo file có kích thước tuỳ ý, nhớ dùng fallocate !

Tham khảo: man fallocate

Hết.
hvn at familug.org