![](/img/trans.png)
[英]How can I count the number of specific files within a date range on the command line using bash?
[英]How can i count the number of files with a specific octal code without them showing in shell
我嘗試使用樹命令,但我不知道如何。(我想使用樹,因為我不希望文件顯示,只是數字)假設 c 是權限代碼例如我想知道如何許多文件都具有751權限
將find
與-perm
標志一起使用,該標志僅匹配具有指定權限位的文件。
例如,如果您在$c
中有八進制,則運行
find . -perm $c
通常的find
選項適用——如果您只想在當前級別查找文件而不遞歸到目錄中,請運行
find . -maxdepth 1 -perm $c
要查找匹配文件的數量,請使用find
為每個文件打印一個點並使用wc
計算點數。 (正如@BenjaminW.在評論中指出的那樣, wc -l
將不適用於帶有換行符的更奇異的文件名。使用wc -c
的想法的來源就是這個答案。)
find . -maxdepth 1 -perm $c -printf '.' | wc -c
這將顯示文件數量而不顯示文件本身。
如果您使用zsh
作為 shell,則無需任何外部程序即可本機執行此操作:
setopt EXTENDED_GLOB # Just in case it's not already set
c=0751
files=( **/*(#qf$c) )
echo "${#files[@]} files found"
將計算當前工作目錄和具有這些權限的子目錄中的所有文件(並為您提供數組中的所有名稱,以防您以后想對它們執行某些操作)。 在文檔中閱讀有關zsh
glob 限定符的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.