2014-10-15 6 views
0

Я пишу свой первый скрипт, который берет файл и перемещает его в другую папку, за исключением того, что я хочу изменить имя файла на filename_inode, а не только на имя файла, если есть файлы с одинаковыми имяПреобразование имени файла в Filename_Inode

Я понял, как показать это, создавая следующие 4 переменные

инф.узлов = $ (Ls -i $ 1 | вырезать -c1-7) #lists файл типов пользователей, порезы inode из него

space = "_" #used использовать между именем файла и именем

BNAME = $ ($ 1 базовый) #gets базового имени файла без каталога и т.д.

bnamespaceinode = $ BNAME $ пространства $ инф.узлов #combines на 3 значения в одной переменных

эхом «$ bnamespaceinode #prints filename_inode к окну

Таким образом, нижняя эхо показывает filename_inode что то, что я хочу, только теперь, когда я пытаюсь переместить это с помощью мв или ф я получаю следующие ошибки

enter image description here enter image description here

Я не думаю, что ничего плохого с синтаксисом я использую для команд мв и резюме, и поэтому я думаю, мне нужно конкатенировать 3 переменных в новый файл или использовать результат первый, а затем добавить другие 2 в этот файл?

Я пробовал оба из вышеперечисленных, но до сих пор не повезло, никаких идей?

Благодаря

+0

Было бы проще, если бы вы просто привел пример, показывающий, что у вас есть, и что вы ожидаете. Также укажите исходные и целевые каталоги. – Rein

ответ

1

Без четких примеров, я думаю, это может работать:

$TARGETDIR=/my/target/directory 
mv $1 $TARGETDIR/$(basename "$1" | sed 's/_.*/_inode/')