23

実際のフォルダ名自体を除外しながら、自分が属していないフォルダの内容を一覧表示するのに問題があります。

元:

root@vps [~]# find ~/test -type d
/root/test
/root/test/test1

ただし、例として/test1のみを表示したいと思います。

考え?

4

4 に答える 4

41

シンプルでも問題ありません

find ~/test -mindepth 1

同様に、これは同じ効果があります。

find ~/test/*

含まれているすべてのものと一致します~/test/が、それ自体は一致しません~/test

余談ですが、順序付けは通常重要ですが、スイッチは全体的な動作に影響を与えるため、オプションが他のスイッチの後にfindあることについて不平を言うことはほぼ間違いありません。-mindepth n-(min|max)depth n

于 2012-11-21T11:24:26.947 に答える
7

あなたはとでそれを行うことができ-execますbasename

find ~/test -type d -exec basename {} \;

説明:

  • すでにご存知のように、このfind ~/test -type dパーツは、の下にあるすべてのディレクトリを再帰的に検索します。~/test
  • -exec basename {} \;パーツはでbasenameコマンドを実行します。{}ここで、最後のステップのすべての結果がに代入されます。
于 2012-11-14T18:37:23.870 に答える
3

-type f次に、の代わりに必要です-type d

-mindepth 1または、親( )を除くフォルダの一覧を表示したい場合find ~/test -type d -mindepth 1

そして今あなたがそれを編集したので、私はあなたが望むものが何であるかもしれないと思います

find ~/test -type d -mindepth 1 |cut -d/ -f3-

しかし、私はあなたがより具体的にする必要があると思います;-)

于 2012-11-14T18:26:30.463 に答える
-1

で修正しましたsed

find $BASE -type d \( ! -iname "." \)|sed s/$BASE//g

$BASE最初のfoldernameはどこにありますか。

于 2012-11-17T02:09:45.450 に答える