Unix: файлы, начинающиеся с тире, –

Хорошо, у меня есть куча файлов, начиная с тире, -. Что не так хорошо … и я хочу переименовать их. В моем конкретном случае я просто хотел бы поставить персонажа перед собой.

Я нашел следующую строку, которая должна работать, но из-за нее тире нет:

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 

Я просто не знаю, как это сделать сейчас … вздох

Вам нужно использовать ключевое слово -- чтобы сообщить команде mv, что аргументы не должны интерпретироваться как параметры. Смотреть:

 $ mv -N1.ext x-f1.ext mv: invalid option -- N Try `mv --help' for more information. $ mv -- -N1.ext x-f1.ext $ ls x-f1.ext 

Используйте -- после всех вариантов в командной строке. Например, если вы пытаетесь использовать параметр -i для mv , это будет раньше :

 mv -i -- -filename-begins-with-dash newfilename 

Другой способ – включить родительский каталог с именем файла …

Чтобы переименовать файл '-file-to-rename' в 'file-to-rename' …

 mv ../parent-dir/-file-to-rename file-to-rename 

Благодарю вас @Skippy le Grand Gourou. Подтверждено, что ./-file-to-rename работает с mv и rm как в …

 mv ./-file-to-rename ./--file-to-rename rm ./-file-to-rename 
  • Подключение к сети Wi-Fi через терминал Mac
  • Unix «$ @» в качестве параметра
  • Как восстановить удаленный файл в Mac?
  • Как доказать, что файл не подделан?
  • Как сделать разрешение на новый файл наследованием из родительского каталога?
  • Лучшая практика для псевдонима команды rm и обеспечения ее безопасности
  • Можно ли «мгновенно» создавать произвольные файлы?
  • Возможно ли установить файл .tar?
  • Выбор между .bashrc, .profile, .bash_profile и т. Д.
  • Команда: sudo su -
  • Как защитить пароль .tgz-файла с помощью tar в Unix?
  • Давайте будем гением компьютера.