Я должен был это сделать:
systemtcl disable *dm
где *
— это g
или k
может быть x
.
Использованиеfind
:
find. -mindepth 1 -type d -name "*.*" -exec bash -c '
for ((i=$#;i>0;i--)); do
dir=${!i}
newdir=$(dirname "$dir")/$(basename "$dir" | tr -s "." " ")
if [ -e "$newdir" ]; then
echo "skipping \"$dir\", \"$newdir\" already exists" >&2
else
mv "$dir" "$newdir"
fi
done
' bash {} +
Это рекурсивно находит все имена каталогов с шаблоном *.*
в текущем каталоге, пропуская текущий каталог с -mindepth 1
. Список найденных каталогов передается с -exec
в скрипт bash, где его аргументы обрабатываются в обратном порядке в цикле for -(подкаталоги с более глубоким уровнем идут первыми ).
Новое имя каталога создается из его dirname
и basename
. Последний изменен с помощью tr
, где несколько точек заменяются одним символом пробела (удалите опцию -s
, если вы хотите заменить несколько точек несколькими пробелами ). Затем напечатайте сообщение об ошибке, если новое имя каталога уже существует, или переместите его.