Как удалить каталог с дефисом в имени, пожалуйста? [duplicate]

Мы можем обмануть и заменить символ-разделитель другим (например, символом NUL), который позволит «родной» сортировке работать, а затем вернуть его обратно.

например

tr x '\000' < file.txt | sort | tr '\000' x

Теперь нам, возможно, придется быть осторожными с влиянием локали на порядок, поэтому вам может потребоваться сделать

tr x '\000' < file.txt | LANG=C sort | tr '\000' x

Это работает только до тех пор, пока данные не содержат NUL!

Как это работает, может быть проще объяснить с помощью форматированной таблицы:

Нам нужно сравнить две строки:

ab  | def
abc | def

Мы устанавливаем разделитель на NUL и сравниваем ab def с abc def . стоит перед c , поэтому мы правильно отсортировали по первому полю.

Теперь предположим, что первое поле совпадает, а второе поле отличается.

abc | def
abc | ghi

Теперь сравним abc def с abc ghi . У нас есть совпадение по первому полю и разделителю, и теперь мы выполняем сортировку по второму полю.

2
12.09.2016, 13:39
1 ответ

try:

rm -r  -- -ltr

man rm:

Чтобы удалить файл, имя которого начинается с '-', например '-foo', используйте одну из этих команд:

$ rm -- -foo

OR

$ rm ./-foo
7
27.01.2020, 21:52

Теги

Похожие вопросы