(ドット)を含むが終了しない項目を探します。

(ドット)を含むが終了しない項目を探します。

フォルダ名に.を含むすべてのファイルを見つける方法は?以下を試しましたが、目的のフォルダではないすべてのフォルダが一覧表示されました。 探す。 -最大深さ 2 -typed -ipath "

このような名前のフォルダがたくさんあるようです。Brain.Dead.1990.1080p.BluRay.x264-HD4U[rarbg]私の目には本当に見苦しいです。私はそれらをリストし、その名前をより読みやすい名前で編集したいと思います。どんな手がかりがありますか?

答え1

正規表現のない別の発見

find . -maxdepth 2 -type d -name '*.*' ! -name '.*'

答え2

find . -maxdepth 2 -type d -name '*.*'

..名前に、、およびを含む./user/.configすべてのディレクトリを報告します。./.foo.d./.foo/bar.baz

find . -maxdepth 2 -type d -name '?*.*'

..foo.d最初の文字の後ろの部分を検索するので、一致するが、またはでは.config一致しません.

find . -maxdepth 2 -type d -name '[!.]*.*'

隠しディレクトリ(名前で始まるディレクトリ.)は省略されますが、隠されたディレクトリ以外のディレクトリはまだ隠されたディレクトリ内にあります./.foo/foo.bar

find . -maxdepth 2 -name '.?*' -prune -o -type d -name '?*.*' -print

隠されたディレクトリは閲覧または報告されません。

標準ではない唯一の部分は-maxdepth 2すでに使用している部分です。標準に対応するものは次のとおりです。

find . -name '.?*' -prune -o \
   \( ! -path './*/*' -o -prune \) \
   -type d -name '?*.*' -print

答え3

findバージョンが正規表現をサポートしている場合は、正規表現を使用できます。

find . -maxdepth 2 -type d -regex '.*/[^./][^/]*\.[^/]*'

これは名前が「。」以外の文字で始まるすべてのディレクトリ(最大深さ2)と一致します。他の場所には「.」が含まれています。

関連情報