Я новичок изо всех сил пытается переместить файл на Linux VPS с помощью PuTTY.

В этот момент я могу войти в систему с пользователем в PuTTY, чтобы перейти к файлу, который я хочу переместить (~/servers/apache-solr-3.6.2/example/webapps/solr.war).

Пользуясь cd .. пару раз из каталога, в котором я начинаю, когда я впервые захожу в PuTTY, я могу затем перейти в место, куда я хочу переместить файл:usr/local/jakarta/apache-tomcat-5.5.36/webapps/

Я знаю, что мне нужно использовать cp для копирования файла, и я пробовал варианты:cp ~/servers/apache-solr-3.6.2/example/webapps/solr.war usr/local/jakarta/apache-tomcat-5.5.36/webapps

Однако каждый раз, когда я получаю «Нет такого файла или каталога»

Я попытался исключить ~/ и начало, и я попытался указать solr.war в конце команды.

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

5 ответов5

1

Некоторые общие замечания:

  • Формат команды copy (cp) - cp source destination
  • В мире * nix (Unix, Linux и т.д.) Каталоги представляются как / в отличие от \ в Windows. root файловой системы (Windows ' C:\) является / . Итак, путь Windows

    C:\Directory\Subdirectory\file.txt 
    

    это на линуксе

    /Directory/Subdirectory/file.txt 
    
  • ~/ это ваш домашний каталог, также известный как $HOME .

  • Вам не нужно cd в каталог, в который нужно копировать данные, вы можете просто указать полный путь к нему.

  • Вам не нужно вводить весь путь. В большинстве систем Linux, когда вы начинаете вводить путь, вы можете нажать Tab, чтобы завершить его. Если есть более одного возможного завершения, дважды нажмите Tab, чтобы увидеть их. Например, введите

    ls /bo
    

    и нажмите Tab, он будет автоматически завершен до

    ls /boot
    

Итак, собрав все это вместе, вместо того, чтобы писать весь путь, попробуйте написать начало и использовать Tab для автозаполнения. Я подозреваю, что ваш файл находится не в ~/servers а в /servers поэтому попробуйте:

cp /servers/apac Tab

Это автозаполнение? Если нет, попробуйте

cp ~/servers/apac Tab

Как только вы найдете правильный исходный каталог, снова используйте трюк Tab, чтобы найти правильный целевой каталог.

0

Вы пропустили / до usr .

Решение (первая строка ваша, вторая правильная):

cp ~/servers/apache-solr-3.6.2/example/webapps/solr.war usr/local/jakarta/apache-tomcat-5.5.36/webapps

cp ~/servers/apache-solr-3.6.2/example/webapps/solr.war /usr/local/jakarta/apache-tomcat-5.5.36/webapps/

Я рекомендую вам просмотреть это и это короткое видео, чтобы понять основные команды терминала Linux.

0

Решение этого было основано на комбинации вкладов от других ответов - спасибо всем. сентябрь и ультрасовол были правильными, чтобы указать, что мне нужен слеш перед usr:

    cp ~/servers/apache-solr-3.6.2/example/webapps/solr.war /usr/local/jakarta/apache-tomcat-5.5.36/webapps/

Спасибо, gabe за указание на возможность проблем с разрешениями. Так что для меня вышеприведенная команда не сработала, потому что у меня не было правильных разрешений в качестве пользователя, в который я вошел как.

Спасибо Тердону за то, что он указал, что ~/ означает домашний каталог для текущего пользователя, который в основном эквивалентен /home/username/ . Знание этого означало, что я мог войти в систему как пользователь root (избегая проблем с разрешениями) и набрать следующую команду (которая работала):

    cp /home/username/servers/apache-solr-3.6.2/example/webapps/solr.war /usr/local/jakarta/apache-tomcat-5.5.36/webapps/ 

Спасибо за всю вашу помощь с этим. Гейб и Септемебр - спасибо за ссылки на эти ресурсы - они были полезны.

0

Если вы печатаете точно:

cp ~/servers/apache-solr-3.6.2/example/webapps/solr.war usr/local/jakarta/apache-tomcat-5.5.36/webapps

попробуйте ввести это вместо:

cp ~/servers/apache-solr-3.6.2/example/webapps/solr.war /usr/local/jakarta/apache-tomcat-5.5.36/webapps

Без / перед usr , скорее всего, он пытается перейти в ваш текущий каталог плюс usr/local/jakarta/apache-tomcat-5.5.36/webapps вместо off / .

РЕДАКТИРОВАТЬ: Если у вас действительно есть каталог usr в вашем домашнем каталоге и вы пытаетесь скопировать что-то вроде /home/your_user_name/usr/local... то укажите полный путь.

0

Копирование файла требует двух вещей:

  1. Правильные места
  2. Правильные разрешения

Похоже, вы боретесь с частью местоположения.

Попробуйте перейти в оба места и запустить команду "pwd". PWD возвращает полный путь к файлу, где вы находитесь.

Скопируйте вывод pwd из обоих мест, чтобы использовать команду cp.

пример

cp 'pwd output source'/solr.war 'pwd output destination location'

Для разрешений: вам необходимо убедиться, что у вас есть разрешение на запись в место назначения, в которое вы пытаетесь записать, а также на чтение файла, который вы пытаетесь прочитать. Выполните ls -al для файла, который вы пытаетесь скопировать, и ls -al в папке назначения, и предоставьте этот вывод. Вы также можете права доступа к файлам Google. Или вы можете прочитать эту статью, чтобы понять, какие у вас есть разрешения: http://www.perlfect.com/articles/chmod.shtml

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .