В Вашем сценарии существует несколько проблем заключения в кавычки. Это исказит имена файлов, содержащие специальные символы: пробел, \[?*-
.
** Всегда используйте двойные кавычки вокруг подстановок переменных "$i"
и замены команды "$(sed …)".
Без двойных кавычек значение переменной интерпретируется как список разделенных от пробела подстановочных шаблонов, и каждый шаблон заменяется списком соответствия именам файлов (при отсутствии соответствий, шаблон оставлен в покое).
Кроме того, если имя файла начинается -
, это будет интерпретироваться как опция mv
и возможно echo
. Передача --
сначала, чтобы сказать команду, что больше не будет опций.
for i in *.ai; do
mv -- "$i" "$(printf '%s\n' "$i" | sed 's,a1,b1,')"
done
(Это все еще предполагает, что Ваши имена файлов не содержат новые строки.) (я также зафиксировал sed
аргумент в то, что Вы, по-видимому, имели в виду.)
Если Ваш список имен файлов прост разделенный от запятой без кавычек, можно проанализировать его со сценарием оболочки. Это предполагает, что нет никаких запятых или новых строк ни в каком имени файла.
while IFS=, read -r from to junk; do
mv -- "$from" "$to"
done <"$files_to_rename.csv"
Если Ваш входной файл является файлом CSV с возможным заключением в кавычки, используйте реальный синтаксический анализатор CSV. Не пробуйте к самокрутке. Посмотрите там устойчивый инструмент командной строки для обработки файлов CSV? Например, в Python (с CSV на стандартном входе):
import csv, os, sys
for line in csv.reader(sys.stdin):
(source, dest) = line
os.rename(source, dest)
Просто необходимо схватить дерево источника ядра (и удостовериться, что сборка идентична загрузочному ядру.)
Так, yum -y install kernel-devel kernel-headers
uname-r также скажет Вам определенную сборку ядра, важную, чтобы удостовериться, что это соответствует пакетам дьявола!
Первая установкаdkms
:
sudo apt-get install dkms
Затем выполните установку Cuda, например.
sudo sh cuda_8.0.61_375.26_linux.run