我正在計算照片檔案夾中的檔案:
% find . -type f | wc -l
22188
然后我計算每個擴展名的檔案:
% find . -type f | sed -n 's/..*\.//p' | sort | uniq -c
268 AVI
14983 JPG
61 MOV
1 MP4
131 MPG
1 VOB
21 avi
1 jpeg
6602 jpg
12 mov
20 mp4
74 mpg
12 png
總和是 22187,而不是 22188。所以我認為它可能是一個沒有擴展名的檔案:
% find . -type f ! -name "*.*"
但結果是空的。也許是一個以.以下開頭的檔案:
% find . -type f ! -name "?*.*"
但也是空的。我怎樣才能找出那個檔案是什么?
我在 macOS 10.15 上。
uj5u.com熱心網友回復:
此命令應找到丟失的檔案:
comm -3 <(find . -type f | sort) <(find . -type f | sed -n '/..*\./p' | sort)
uj5u.com熱心網友回復:
也許是一個帶有嵌入式回車(或換行)的檔案?
很想知道這會產生什么:
find . -type f | grep -Eiv '\.avi|\.jpg|\.mov|\.mp4|\.mpg|\.vob|\.avi|\.jpeg|\.png'
uj5u.com熱心網友回復:
請你試試:
find . -type f -name $'*\n*'
它將選取包含換行符的檔案名。該ANSI-C quoting由慶典-3.2.x中左右在MacOS支持。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/348046.html
上一篇:bash處理多引號
