簡體   English   中英

我如何計算具有特定八進制代碼的文件數而不顯示在 shell 中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM