mv терпит неудачу с целью не является каталогом при использовании даты
Я запускаю это
sudo mv /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.{,$(date +%Y%m%d%H%M%S)}
Я получил:
mv: target '/etc/mysql/mysql.conf.d/mysqld.cnf.20190517170628' не является каталогом
Бег
sudo mv /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.222
работает хотя
есть идеи?
1 ответ
/etc/mysql/mysql.conf.d/mysqld.cnf.{,$(date +%Y%m%d%H%M%S)}
Это расширяет до двух файлов, так что в общей сложности после выполнения фигурной скобки у вас будет 3 параметра командной строки для команды mv. Проверьте это с помощью echo вместо mv
Когда mv вызывается с 3 или более аргументами, он будет рассматривать все, кроме последнего, как файлы, которые нужно переместить, а последний элемент - как каталог назначения, куда вы хотите переместить вещи. То есть
mv file1 file2 directory
Если ваша цель - переместить только один конкретный файл, расширение фигурной скобки можно пропустить и использовать только подстановку команды с командой date