Удалить папки с ^ M внутри имени - PullRequest
2 голосов
/ 26 мая 2020

На linux скрипт с ошибками создал папки с таким: ^ M в конце имени. ^ M перемещен в? с помощью ls -al.

Поиск по? не работает как поиск по ^ M (или \ ^ M)

Заранее спасибо всем, кто может помочь мне удалить эти папки.

1 Ответ

4 голосов
/ 26 мая 2020

Что вам нужно, так это использовать строку в стиле c, где вы можете указать символы ^M или возврата каретки с его обратной клавишей sh escape \r.

A c -style строка состоит из $ и одинарных кавычек: $'a c-style string'

Найти каталоги с ошибками:

find . -type d -name $'*\r'

Список имен каталогов с ошибками:

ls -d *$'\r'

Переименуйте каталоги с ошибками, удалив завершающий CR.

find . -type d -name $'*\r' -execdir sh -c $'for d; do mv -- "$d" "${d%\r}"; done' _ {} +

Удалите каталоги с ошибками в текущем каталоге с их содержимым:

rm -r -- *$'\r'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...