GNU/Linux >> Linux の 問題 >  >> Linux

指定されたファイル名のファイルが内部にないすべてのディレクトリを一覧表示しますか?

しないすべてのディレクトリを一覧表示するにはどうすればよいですか。 中に特定のファイル名のファイルがありますか?例えばこの木を与えられた

/
  /a
     README
     file001
     file002
  /b
     README
     file001
  /c
     file003

しないディレクトリを一覧表示したい READMEという名前のファイルがあります 、この場合はディレクトリ/cになります 。どうすればいいですか?たとえば、を使用した構文は考えられません。 find

承認された回答:

findを想定 GNU findのような実装 {}を受け入れる -execへの引数に埋め込まれています :

$ find . -type d ! -exec test -e '{}/README' ; -print

または、問題のある埋め込みなし:

$ find . -type d ! -exec sh -c 'test -e "$1"/README' sh {} ; -print

ここで、ディレクトリ1/1から5/5にはREADMEがあり、他のディレクトリは空です。

$ tree 
.
|-- 1
|   `-- 1
|       `-- README
|-- 10
|   `-- 10
|-- 2
|   `-- 2
|       `-- README
|-- 3
|   `-- 3
|       `-- README
|-- 4
|   `-- 4
|       `-- README
|-- 5
|   `-- 5
|       `-- README
|-- 6
|   `-- 6
|-- 7
|   `-- 7
|-- 8
|   `-- 8
`-- 9
    `-- 9

このバージョンのfindを実行すると コマンド:

$ find . -type d ! -exec test -e '{}/README' ; -print
.
./10
./10/10
./7
./7/7
./9
./9/9
./6
./6/6
./5
./8
./8/8
./4
./1
./3
./2

参考資料

  • 特定のファイル名を含まないディレクトリを検索で除外しますか?

Linux
  1. 末尾にスラッシュが付いたディレクトリをリストするためにLsを取得するにはどうすればよいですか?

  2. 文字列を含む名前のすべてのファイルを検索

  3. 検索ですべてのグラフィック イメージ ファイルを一覧表示しますか?

  1. ファイル名に次より大きい番号が含まれるファイルを検索

  2. Linux で現在の日付と時刻の名前のファイルを作成する方法

  3. X よりも古いすべてのファイルを含むディレクトリを検索しますか?

  1. ファイルの履歴を表示する (ファイルを変更したユーザーのリスト)

  2. ファイル システムを持たないすべてのディスクをキャプチャする方法

  3. 特定の名前のフォルダーを除く、フォルダー内のすべてのフォルダーを削除します