.../project/dir1/dir2 などの特定のディレクトリ名のネストを探します。

.../project/dir1/dir2 などの特定のディレクトリ名のネストを探します。

コマンドにはいくつかの問題がありますfind。その構文を理解していないため、どこにでも配置できる特定のディレクトリ構造を見つけるには、スクリプトでこのコマンドを使用する必要があります。

基本的に私は "project/dir1/dir2"のような構造を持ち、常に同じ名前の3つのディレクトリが順番に存在することを知っています。違いは、この構造がどれだけ深くネストされているかです。たとえば、次のようになります。

$HOME/project/dir1/dir2

または

$HOME/workspace/project/dir1/dir2

project/dir1/dir2基本的に、構造物がどれほど深く埋まっていても、構造物を見つけるための普遍的な方法が必要です。

これは常にUbuntuにあります。検索の使用を検討しましたが、検索データベースが常に最新であることを確認する必要がありました。

ベストアンサー1

試してみると、find -name project/dir1/dir2次のメッセージが表示されます。

find:警告:Unixファイル名には通常スラッシュは含まれていません(パス名には含まれています)。これは-name 'project/dir1/dir2'、そのシステムで常にfalseと評価できることを意味します。この-wholenameテストがより役に立つかもしれません-samefile。または、GNU grepを使用している場合は、find ... -print0 | grep -FzZproject / dir1 / dir2 ''を使用できます。

したがって、これらのタスクにいくつかの代替手段を提供します。奇妙なことに、-pathfindコマンドは言及されていません。

find -path "*/project/dir1/dir2" -print

始めを参考にしてください*/。これはfindで終わるすべてのパスを印刷するように指示し、/project/dir1/dir2最初のディレクトリの名前はでなければなりませんproject。それ以外の場合は findmyproject/dir1/dir2などを行います。

おすすめ記事