フォルダ名に.を含むすべてのファイルを見つける方法は?以下を試しましたが、目的のフォルダではないすべてのフォルダが一覧表示されました。 探す。 -最大深さ 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)と一致します。他の場所には「.」が含まれています。