我有一個目錄,里面有多個目錄,包含許多型別的檔案。
我想找到*.jpg檔案,然后得到所有單個檔案的數量和總大小。
我知道我必須使用find wc -l和du -ch,但我不知道如何在一個腳本或一個命令中結合它們。
find . -type f name "*.jpg" -exec - 不知道如何將這三者聯系起來
uj5u.com熱心網友回復: 假設你的起始檔案夾是 最后的 公平的警告:這實際上是在執行 這可能會對很多檔案造成破壞。
要檢查有多少個: 這就是我系統上的配置。 但這并沒有給你檔案的數量。你需要抓住 最后一行是總數,所以我們將使用除最后一行以外的所有內容來獲得檔案數量,并使用最后一行來獲得總數: 我們將使用最后一行來獲得檔案數量。
這對我來說是: uj5u.com熱心網友回復: 如果你想得到一個目錄中每個單獨的 輸出
標籤: 上一篇:默認Vim總是在新標簽中打開幫助
find .
.,這將給你所有的檔案和總大小:find . -type f -name '*.jpg' -exec du -ch {}。
在所有檔案上一次性執行du -ch,而不是每個檔案,使你能夠得到全部的檔案。
如果你只想知道總數,可以在最后加上| tail -n 1。
du -ch file1 file2 file3 ...
$ getconf ARG_MAX
2097152
find的輸出并使用它兩次。
OUT=$(find . -type f -name '*.jpg' -exec du -ch {}) )
N=$(echo "$OUT"/span> | head -n -1 | wc -l)
SIZE=$(echo "$OUT"/span> | tail -n 1)
echo "檔案的數量。$N"。
echo $SIZE
檔案數。143
總計584K
.jpg檔案的行數和大小,你可以試試這個腳本。#!/usr/bin/env bash
#Create variable to store the totals of .jpg file found and their line count.
Files=$(wc -l *.jpg | tail -1 | awk '{print "Total Files: "1}')
sizes=$(du -ch *.jpg | tail -1 | awk '{print " Total Size: " $1}')
#創建臨時目錄。
size="tempsizefile.txt"
line="templinefile.txt"
#Begin a loop to display each file separate separate showing line count and size
for j in *.jpg; do
du -ch $j |awk 'NR==1{print 1}' > "$size"#Size used
wc -l $j > "$line" #每個檔案的總行數和檔案名。
粘貼 "$size" "$line"
rm -f "$size" "$line" #粘貼然后洗掉暫存檔案
done
echo "Size Lines Filename"
echo
#Optional if the individual display is not needed.
echo "$Files"/span>
echo "$sizes"。
4.0K 1 a90.jpg
4.0K 1 a91.jpg
4.0K 1 a92.jpg
4.0K 1 a93.jpg
4.0K 1 a94.jpg
4.0K 1 a95.jpg
4.0K 1 A96.jpg
4.0K 1 a97.jpg
4.0K 2 a98.jpg
4.0K 1 a99.jpg
4.0K 1 a9.jpg
尺寸行數 檔案名
檔案總數。100
總大小:400K
