awk
тоже может спасти положение. Я использую cp
там, измените его на mv
, если хотите:
ls | awk -F"=" '{system("cp -i "$0" "$3)}'
Я бы использовал -i
как cp
параметр тоже на всякий случай.
Попробуйте:
ls -l -- -*
--указывает, что следующие параметры не являются параметрами командной строки.
Судя по вашему обновлению, для символов подчеркивания вы должны просто уметь:
ls -l _*
Хотя вариант --не повредит, (он просто ничего не даст в этом случае)
"-" интерпретируется как параметр, но вам не нужно мучиться, просто добавьте путь перед именем файла или просто используйте./.
touch./-badfilename1./-badfilename2
ls -l./-*
ls -l /full/path/for/the/file/-*
rm./-badfilename?
И каждая команда будет работать (ls, rm, cat, touch и т. д.! ).