Работает в командной строке, но не в скрипте

Я пытаюсь это сделать:

for file in `ls -1 ../files/file_??_??.dat` ; do echo "$file" ; ln "$file"  ; done

И для каждого файла выдается эта ошибка:

ln: не удалось создать жесткую ссылку './file_01_am.dat' => '../files/file_01_am.dat': Нет такого файла или каталога

Но в командной строке это работает нормально:

ln ../files/file_01_am.dat

Почему ln не удается в цикл (также только что записанный непосредственно в командной строке) и не сбои в командной строке при непосредственном выполнении?

Только для информации, следующая команда также завершается неудачно так же, как цикл выше (этот также попробуйте использовать абсолютные пути):

find /media/files -name "file_??_??.dat" -print0 | xargs -0 -L 1 ln

Я действительно не хочу вручную жестко связывать каждый файл!

Каталог files является смонтированной файловой системой smb , Что странно, так это то, что команда ln работает нормально, если я запускаю ее напрямую, но не тогда, когда она выполняется в цикле любого рода.

Пожалуйста, помогите.

1
задан 28 May 2014 в 08:28

1 ответ

используйте это:

find /media/file_??_??.dat -exec ln {} \;
0
ответ дан 28 May 2014 в 08:28

Другие вопросы по тегам:

Похожие вопросы: