2010-05-28 3 views
5

Случайно я создал файл «-» (просто минус) в каталоге и совершил его. я должен удалить его, потому что его вызывает ошибки на других машинах: SVN: Невозможно преобразовать строку из 'UTF-8' в родную кодировку: SVN:? \ 226 \ 128 \ 147Как удалить файл «-» из svn?

я могу удалите его из локального каталога с помощью «rm -i *» или с помощью python «os.remove ('\ xe2 \ x80 \ x93')», но эти методы не работают с «svn rm».

Как удалить такой файл из репозитория svn?

+0

Вы пробовали 'svn rm - -' или 'LC_ALL = C svn rm - -'? – Rudi

+0

Так что это был не минус, хотя он выглядел почти точно так же. Я скопировал его с «ls» и удалил его с помощью «svn rm - -». Спасибо за быстрые ответы. – askonecki

ответ

5

Вы можете попробовать svn rm ./-

Это не может быть на самом деле минус, помысел, но подобный вид персонажа.

+0

Я помню, что мне пришлось придумать этот ответ в моем классе Linux в колледже. – Malfist

8

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

Попробуйте что-нибудь наподобие svn rm -- -.

То же самое, если вы хотите удалить каталог из файловой системы: rm -r -- -.

2

попробовать svn rm -- -

-- означает "прекратить чтение варианты".

1

В некоторых случаях (например, на консоли) вы не сможете скопировать/вставить нечетный символ. В этой ситуации вы можете использовать флешинг файлов. Рекомендуется сделать ls перед rm, чтобы убедиться, что вы не включили что-то в удаление, которое хотите сохранить.

Любой односимвольный имя файла:

ls -l ? 
rm ? 

или любой односимвольный имя файла, не алфавитно-цифровой символ или дефис:

ls -l [^a-zA-Z0-9-] 
rm [^a-zA-Z0-9-] 

Другой вариант (локали известно) о том, что будет :

ls -l [^[:alnum:]-] 
rm [^[:alnum:]-] 

Вы также можете комбинировать другие списки символов и классов к большему количеству глобусов и конкретным символам.

Удалить любой файл с именем трехсимвольного, который не начинается с «м», «с» или «у», не имеет второй символ, и заканчивается на «1» или «9»:

rm [^msy]?[19] 
Смежные вопросы