ファイルを含むフォルダを探す

ファイルを含むフォルダを探す

特定のファイルを含むすべてのサブフォルダを見つける方法は?

たとえば、Minecraftサーバーのインストールでは、さまざまな世界がランダムな名前のサブフォルダに保存されます。特定のフォルダが世界を表すことを確認するには、level.datフォルダ内を見てください。すべてのlevel.datファイルを見つけてそのファイルを含むフォルダを返すコマンドはありますか?

答え1

ファイルを見つけてディレクトリ名を返すだけです。

find -name 'level.dat' -exec dirname {} \;

答え2

または、ファイルを見つけてディレクトリ名を一括抽出します。

find 起動ディレクトリ –name level.dat –print | sed 's@/level.dat$@@'

答え3

    find ~ -type f -name "level.dat" -printf '%h\n'

その名前のファイルが複数ある場合は、次にパイプしてください。uniq

答え4

これを使用して、find特定のテストに合格したファイルのみを印刷できます。私はこのアプローチが大好きです。

find . -type d -execdir test -f {}/level.dat \; -print

これにより、というファイルを含むすべてのファイルが検索されますlevel.dat

関連情報