簡體   English   中英

在Unix / Linux中查找沒有文件的目錄

[英]Find Directories With No Files in Unix/Linux

我有一個目錄列表

/home
  /dir1
  /dir2
  ...
  /dir100

其中一些沒有文件。 我如何使用Unix find來做到這一點?

我試過了

find . -name "*" -type d -size 0 

似乎沒有用。

你的發現是否有謂詞 - -empty

你應該可以使用find . -type d -empty find . -type d -empty

如果您是zsh用戶,則可以隨時執行此操作。 如果你不是,也許這會說服你:

echo **/*(/^F)

**/*將擴展到當前工作目錄的每個子節點,而()是一個glob限定符。 /將匹配限制為目錄, F將匹配限制為非空的匹配。 ^否定它會給我們所有空目錄。 有關更多詳細信息,請參見zshexpn手冊頁。

-empty報告空葉dirs。 如果您想找到空樹,請查看: http//code.google.com/p/fslint/source/browse/trunk/fslint/finded

請注意,如果沒有其他支持腳本,則無法使用腳本,但是您可能希望安裝fslint並直接使用它?

您還可以使用:

find . -type d -links 2

和..都算作鏈接,文件也是如此。

Pimin Konstantin Kefalou的答案只打印了2個鏈接和其他文件(d,f,...)的文件夾。

我找到的最簡單的方法是:

for directory in $(find . -type d); do
   if [ -n "$(find $directory -maxdepth 1 -type f)" ]; then echo "$directory"
   fi
done

如果您有空格的名稱,請在“$ directory”中使用引號。

你可以替換。 通過您的參考文件夾。

我用一條查找指令無法做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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