100 file với tên lần lượt là 1 2 3 4... 100:
hvn@u1210: /tmp $ for i in `seq 100`;do touch $i;done;
100 file với tên là nanosecond thời điểm hiện tại:
hvn@u1210: /tmp $ for i in `seq 100`;do touch `date +%N`;done;100 file với tên có độ dài 7 ký tự, được tạo bởi 7 ký tự đầu tiên trong mã sha1 của nanosecond thời điểm hiện tại.
hvn@u1210: /tmp $ for i in `seq 100`;do touch `date +%N | sha1sum | head -c 7`;done;
Tạo 10 file với nội dung "hello thon":
Tạo 10 bản sao của 1 file cho trước:
hvn@u1210: /tmp $ for i in `seq 10`; do echo "hello thon" > $i; done;
hvn@u1210: /tmp $ echo "con chim non tren canh cao" > basefile.txt
hvn@u1210: /tmp $ for i in `seq 10`; do cp basefile.txt `date +%N`; done
Giải thích:
- thư mục /tmp được hệ thống set permission 777, cho phép mọi user ghi-đọc-chạy file, các file này sẽ bị xóa sau khi khởi động lai máy
- date +%N trả về nanoseconds của thời điểm hiện tại.
%N nanoseconds (000000000..999999999) - theo `man date`
hvn@u1210: ~/zzz/gentest () $ whatis touch
touch (1) - change file timestamps
khi gán 1 tên file cho lệnh touch sẽ tạo ra 1 file trống với tên đã gán.
bạn có thể làm được nhiều điều thú vị khác với vòng lặp for của bash!
Xem thêm:
http://www.familug.org/2012/10/generate-random-data-part1.html
UPDATE: với bash, có thể sinh dãy từ 1 đến 100 thay vì dùng lệnh seq như sau:
ReplyDeletefor i in {1..100}; do ...;done