Я воспроизвел вашу петлю с помощью:
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.
Вы уверены?
Как оказалось, проблема была связана с температурой, а не с программным обеспечением. После отправки устройства обратно на завод, они заменили кулер устройства, и проблема была устранена!
Судя по всему, процессор разогрелся до чуть менее 100 градусов Цельсия, а затем сразу же затронул.
Вероятно, ваш встроенный контроллер настроен на консервативную настройку температуры. Обратите внимание, что эти настройки сохраняются на материнской плате, а не на жестком диске. Поэтому, если вы играете с инструментами Lenovo под Windows, переводите свой ноутбук в своего рода профиль «энергоэкономичный и тихий», а затем загружаете Ubuntu, настройка все еще активна.
Чтобы изменить это в Ubuntu, вам нужен правильный модуль ядра (, в моем случае этоdell-smbios
)и пакет smbios-thermal-ctl
, чтобы сделать что-то вроде этого:
sudo smbios-thermal-ctl -i
Print all the Available Thermal Information of your system:
-------------------------------------------------------------------
Supported Thermal Modes:
Balanced
Cool Bottom
Quiet
Performance
, а затем активировать более разрешительный профиль, в моем случае (Dell )кажется, что лучшее из обоих миров Balanced
.
sudo smbios-thermal-ctl --set-thermal-mode=Balanced
Еще один инструмент, который я могу порекомендовать, s-tui
для диагностики такого поведения.