Ошибка с помощью SCP: “не регулярный файл”

Вы указываете соответствие диапазона, где конец диапазона не соответствует ни одной из входных строк - т.е. нет никакого процесса с pid 1760.

awk не умен здесь и знает, что поле является числовым полем и сравнением PIDs против числового диапазона, поскольку Вы, кажется, ожидаете. Вместо этого это просто соответствует строке для запуска и конца диапазона, и без соответствия на конце диапазона, диапазон эффективно расширяется для окончания конца файла.

В Вашем примере, если Вы заканчиваете диапазон в 1751 Вы найдете, что получаете то, что Вы хотите.

С другой стороны, сравните поле численно:

awk '$2 >= 14022 && $2 <= 14040 { print }'

Это будет работать, даже если Ваш вход не будет отсортирован.

75
27.04.2016, 18:38
6 ответов

Регулярный файл является файлом, который не является каталогом или более экзотическими видами “специальных” файлов, такими как именованные каналы, устройства, сокеты, двери, и т.д. Символьные ссылки не являются регулярными файлами также, но они ведут себя как своя цель, когда она приложение получает доступ к содержанию файла.

Вы передали root@IP: как источник копии и /path/to/picture.jpg как место назначения. Источник является корневым каталогом пользователя root на машине IP. Это полезно как место назначения, но не как источник. Что Вы ввели требуемый скопировать каталог на файл; scp не может скопировать каталог, если Вы не просите рекурсивную копию с -r опция (и это отказалось бы перезаписывать существующий файл с каталогом даже с -r, но это бесшумно перезаписало бы регулярный файл, если бы источник был регулярным файлом).

Если /path/to/picture.jpg путь на удаленной машине файла, который Вы хотите скопировать, необходимо прикрепить имя файла к спецификации хоста. Это - двоеточие : это разделяет имя хоста от удаленного пути. Необходимо будет указать место назначения также.

scp root@IP:/path/to/picture.jpg /some/destination

Если Вы хотите скопировать локальный файл /path/to/picture.jpg к удаленному хосту необходимо подкачать аргументы. Команды копии Unix помещают источник (источники) сначала и место назначения в последний раз.

scp /path/to/picture.jpg root@IP:

Если Вы хотите скопировать удаленный файл /path/to/picture.jpg к тому же местоположению локально, необходимо повторить путь. У Вас может быть своя оболочка, делает работу повторения для Вас (меньше ввода, меньше удобочитаемости).

scp root@IP:/path/to/picture.jpg /path/to/picture.jpg
scp {root@IP:,}/path/to/picture.jpg
61
27.01.2020, 19:31
  • 1
    удостоверяется, что никакие пробелы не существуют между именем хоста, и файл –  chris 26.02.2015, 02:30
  • 2
    я чувствую себя так невероятно глупым после чтения этого. источник, место назначения! Понятное дело! –  Chaim Eliyah 26.02.2018, 03:44

проблема синтаксиса - удаляет пробел между

root@IP:

и

/ путь

4
27.01.2020, 19:31
  • 1
    , Но, затем у Вас нет цели для scp больше. –  Bernhard 23.10.2012, 09:07
  • 2
    да. я нажал Enter слишком быстро, и испытайте недостаток в представителе для фиксации его. удивленный я могу даже прокомментировать здесь.удачи. –  lurker 23.10.2012, 10:53
  • 3
    я думаю, что можно всегда комментировать к собственным вкладам, и я думал, что Вы могли также всегда редактировать их? –  Bernhard 23.10.2012, 11:00
  • 4
    , который я не делаю толстый, который может вызвать эту ошибку not a regular file –  HISI 07.03.2018, 15:20
  • 5
    @hisi -r как scp аргумент. –  Ankur Loriya 01.05.2018, 08:02

scp root@IP:/path/to/file /path/to/filedestination

Выше команды копирует файл с удаленного сервера на Ваш компьютер. Если Вы вводите только scp root@IP: это попытается скопировать корневой каталог корня (scp пользователи домой .).

Таким образом, необходимо предоставить точный тракт файлу

2
27.01.2020, 19:31
  • 1
    Это работало. Огромное спасибо, друг. Так держать! –  JeffM 23.10.2012, 08:00

При копировании каталога необходимо использовать -r опция:

scp -r root@IP:/path/to/file /path/to/filedestination
116
27.01.2020, 19:31

Вы получаете эту ошибку, потому что пытаетесь скопировать папку, а не файл, и, следовательно, вам следует копировать файлы рекурсивно, используя -r параметр

Используйте команду ниже при копировании файлов с удаленного компьютера на локальный компьютер

scp -r root@RemoteIP:/path/to/file /path/to/filedestination

ИЛИ

При копировании файлов с локального компьютера на удаленный

scp -r /path/to/file root@RemoteIP:/path/to/filedestination
4
27.01.2020, 19:31

Это поздний ответ, но я надеюсь, что он поможет тем, у кого возникла моя проблема.

У меня также возникла такая же проблема при попытке загрузить zip-файл на удаленный сервер.

Моя проблема заключалась в том, что я пропустил :, я использовал:scp myfile.zip remoteuser@IP/destination/folder

Так и должно бытьscp myfile.zip remoteuser@IP:/destination/folder

0
09.09.2020, 17:01

Теги

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