Ошибка переименования команды, файлы больше не отображаются на сетевых дисках Windows

Я сделал ошибку с командой переименования

find . -type f -exec rename 's/[^A-Za-z0-9._]//g' {} +

После этого файлы не находятся в своих папках, как раньше, и каждый файл имеет. перед ними. Теперь мои клиенты не могут видеть файлы. Однажды я удалю. тогда они могут видеть файлы.

Как я могу удалить. из файлов. Как это:

.finacialyear2008half.doc

в

finacialyear2008half.doc

Пожалуйста, помогите мне! Мне нужно быстрое решение.

2 ответа

Решение

find . -type f -exec rename 's/\.//' '{}' \;

Подумайте о параметре -n переименования: он просто покажет, что он будет делать после его удаления!

Предполагая, что вы используете bash, вы можете перебирать файлы, заменяя первые вхождения /. с / в именах файлов всех файлов в текущей папке.

for filename in $(find . -maxdepth 1 -type f)
do
  mv -v $filename ${filename/\/.//}
done

Это предполагает, что вам не нужно рекурсивно переименовывать файлы, и будет работать только в текущем каталоге (-maxdepth 1).

Отказ от ответственности: всегда делайте резервные копии ваших файлов или, по крайней мере, пробуйте несколько тестовых файлов перед выполнением каких-либо действий с вашими данными

Другие вопросы по тегам