Я пытаюсь скопировать и переименовать файлы изображений из одного каталога в другой каталог.
Файлы, которые я хочу скопировать, имеют пробелы, встроенные в их имена файлов, и я хочу заменить часть файла имя с датой съемки.
Ниже приведен пример имен файлов и команды, которые я использовал, а также пример сообщений об ошибках, которые я видел.
Например, я хотел бы скопировать файл «2008_08_17_Transfer 001.jpg» из исходного каталога и переименовать его в «20090314001.jpg» в целевой каталог и т. д. для каждого файла в исходном каталоге, который начинается с «2008_08_17_Transfer».
Вот что я пытался и сообщения об ошибках, которые я вижу:
$ ls -l
total 241968
-rw------- 1 stephen stephen 1347770 Mar 14 2009 2008_08_17_Transfer 001.jpg
-rw------- 1 stephen stephen 1077919 Mar 14 2009 2008_08_17_Transfer 002.jpg
-rw------- 1 stephen stephen 1359947 Mar 14 2009 2008_08_17_Transfer 003.jpg
-rw------- 1 stephen stephen 1309175 Mar 14 2009 2008_08_17_Transfer 004.jpg
-rw------- 1 stephen stephen 1404298 Mar 14 2009 2008_08_17_Transfer 005.jpg
...
for i in *.jpg ; do scp -p "$i" /media/stephen/WDMyBook1_ext4/PicturesRenamedByDateTaken/2009/20090314/20090314`echo "$i" ` ; done
001.jpg: No such file or directory
002.jpg: No such file or directory
003.jpg: No such file or directory
Просто поместите кавычки вокруг имени файла, например
for i in *.jpg ; do scp -p "$i" "/media/stephen/WDMyBook1_ext4/PicturesRenamedByDateTaken/2009/20090314/20090314`echo "$i" `" ; done