重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
#!/bin/bash
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了呼瑪免費(fèi)建站歡迎大家使用!
sort -R a.txt | head -20000
##
sort隨機(jī)排序,然后取前20000,實(shí)現(xiàn)出來就是隨機(jī)抽取20000.
使用dd命令快速生成大文件或者小文件的方法
轉(zhuǎn)載請說明出處:
在程序的測試中有些場景需要大量的小文件或者幾個(gè)比較大的文件,而在我們的文件系統(tǒng)里一時(shí)無法找到那么多或者那么大的文件,此時(shí)linux的dd命令就能快速的幫助你完成想要的文件。具體用法簡單總結(jié)如下:
1.
dd命令可以輕易實(shí)現(xiàn)創(chuàng)建指定大小的文件,如
dd
if=/dev/zero
of=test
bs=1M
count=1000
在當(dāng)前目錄下會生成一個(gè)1000M的test文件,文件內(nèi)容為全0(因從/dev/zero中讀取,/dev/zero為0源),但是這樣為實(shí)際寫入硬盤,文件產(chǎn)生速度取決于硬盤讀寫速度,如果欲產(chǎn)生超大文件,速度很慢。在某種場景下,我們只想讓文件系統(tǒng)認(rèn)為存在一個(gè)超大文件在此,但是并不實(shí)際寫入硬盤
則可以
dd
if=/dev/zero
of=test
bs=1M
count=0
seek=100000
此時(shí)創(chuàng)建的文件在文件系統(tǒng)中的顯示大小為100000MB,但是并不實(shí)際占用block,因此創(chuàng)建速度與內(nèi)存速度相當(dāng),seek的作用是跳過輸出文件中指定大小的部分,這就達(dá)到了創(chuàng)建大文件,但是并不實(shí)際寫入的目的。當(dāng)然,因?yàn)椴粚?shí)際寫入硬盤,所以你在容量只有10G的硬盤上創(chuàng)建100G的此類文件都是可以的。
2.
隨機(jī)生成1百萬個(gè)1K的文件
seq
1000000
|
xargs
-i
dd
if=/dev/zero
of={}.dat
bs=1024
count=1
在shell中有一個(gè)環(huán)境變量RANDOM,它的范圍是0--32767
如果我們想要產(chǎn)生0-25范圍內(nèi)的數(shù),如下:
$RANDOM%26
用這個(gè)環(huán)境變量對26取模,就可以得到最小是0,最大是25的數(shù)了。
如果想得到1--68范圍內(nèi)的數(shù),可以這樣
$RANDOM%68+1,
前面可以得到最小為0,最大為67的隨機(jī)數(shù),再加上1,很自然的就可以得到最大為1,最小為68的數(shù)了。
如果想得到6--87范圍內(nèi)的數(shù)。可以這樣
$RANDOM%82+6,
前面可以得到最小為0,最大為81的隨機(jī)數(shù),再加上6,很自然的就可以得到最大為87,最小為6的數(shù)了。
cat?/dev/random?|?tr?-d?-c?'[:graph:]'|head?-c?10
這樣生成一個(gè)長度10的隨機(jī)密碼 . 一般情況下都會符合你的要求.
當(dāng)然你可以再做改進(jìn), 比如
測試是否包含大寫字母/小寫字母/特殊符號. 如果不符合再調(diào)用上面的命令重新生成一個(gè).