1

グループを検索してディレクトリ名に変更したいフォルダがたくさんあります。

/SchoolA/
/SchoolB/
......
/SchoolZZZ/

私はそれを理解できません-しかし、次のようなものが欲しいです:

find . -type d -exec chgrp {} {} \;

グループに ./ が含まれているため、不正なグループ名を取得します。とにかく ./ を削除するには

次のようなものにする必要があります

find . -type d -exec chgrp NODOTSLASH({}) {} \;

*編集*

以下の投稿の助けを借りて近づいていますが、それでも「。」が出力されます。ディレクトリ。どうすればそれを取り除くことができますか?

find . \( ! -path '^.*' \)  -type d -maxdepth 1 | sed -e 's/\.\///g' | awk '{print "\x22"$0"\x22","\x22"$0"\x22"}'
4

2 に答える 2

1
find . -type d | sed -e 's/\.\///g' | awk '{print $1, $1}' | xargs chgrp

ドットを避けるためのよりアドホックなアプローチ.

find . -type d | sed -e 's/\.\///g' -e 's/\./avoid/g' | grep -v avoid | awk '{print $1"\t"$1}' | xargs chgrp

上記は、2 つの単語の間にタブ スペースも適用します。

于 2013-08-16T20:08:52.443 に答える