
特定のファイルを含むすべてのサブフォルダを見つける方法は?
たとえば、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
。