Я пытаюсь это сделать:
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
работает нормально, если я запускаю ее напрямую, но не тогда, когда она выполняется в цикле любого рода.
Пожалуйста, помогите.
используйте это:
find /media/file_??_??.dat -exec ln {} \;