Вы также обнаружите, что частой причиной этой проблемы является файл конфигурации коммутатора службы имен (NSS ), /etc/nsswitch.conf. Хотя вы можете разрешать адреса в командной строке с помощью команд ping и host, другие команды, такие как apt -, терпят неудачу.
Решение состоит в том, чтобы изменить эту строку в /etc/nsswitch.conf:
Отсюда:
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
К этому:
hosts: files dns
Это должно немедленно решить проблему.
Я воспроизвел вашу петлю с помощью:
while IFS=" " read -r line1 line2; do echo "cp $line1 $line2"; done <in
Получается (с простым файлом "in"):
cp 111 aaaa
cp 222 bbb
cp 3333 ccccc
Но если, скажем, третья строка содержит три имени (, то есть имя с пробелом ), получится
cp 33 33 ccccc
и вот вдруг cp
"переключается" в режим "копировать несколько файлов в каталог", но не получается, т.к. цель "ccccc" (или "Data1.dat" )не является каталогом.
cp: missing destination file operand after 'Data2.dat'
Это происходит после cp onefile
. Что-то путает ваши аргументы. Вы должны сделать несколько тестов...
The input-file has two columns for the file names.
Вы уверены?