Хорошо, у меня есть куча файлов, начинающихся с тире, -. Что не очень хорошо ... и я хочу их переименовать. В моем конкретном случае я просто хотел бы поставить перед ними характер.
Я нашел следующую строку, которая должна работать, но из-за этого не работает:
for file in -N*.ext; do mv $file x$file; done
Если я поставлю echo
перед собой, mv
я получу кучу
mv -N1.ext x-f1.ext
mv -N2.ext x-f2.ext
Что правильно, за исключением, конечно, будет думать, что первое имя файла - это параметры. Поэтому, когда я удаляю echo
и запускаю его, я просто получаю кучу
mv: illegal option -- N
Я пытался изменить его на
for file in -N*.ext; do mv "$file" "x$file"; done
но цитаты просто игнорируются, кажется. Пытался использовать одинарные кавычки, но тогда переменная не раскрывалась ... Что мне здесь делать?
Обновление: я также попытался процитировать цитаты. Как это:
for file in -N*.ext; do mv '"'$file'"' '"'x$file'"'; done
И когда я повторяю это, это выглядит правильно, но когда я на самом деле запускаю это, я просто получаю
mv: rename "-N1.ext" to "x-n1.ext":: No such file or directory
Я просто понятия не имею, как это сделать сейчас ... вздох