Назад | Перейти на главную страницу

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

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

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

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

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

.finacialyear2008half.doc

к

finacialyear2008half.doc

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

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

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

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

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

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

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