No psftp, se você digitar help put
, verá o seguinte:
put [ -r ] [ -- ] <filename> [ <remote-filename> ]
Uploads a file to the server and stores it there under
the same name, or under a different one if you supply the
argument <remote-filename>.
If -r specified, recursively store a directory.
Use put -r CSS
para transferir um diretório. Você receberá uma mensagem de erro como local: unable to open CSS
, se tentar usar o comando put para transferir um diretório sem usar a opção -r.
Como um aparte, outro bom programa gratuito para o sftp para sistemas Microsoft Windows é o WinSCP .
No sistema Ubuntu, verifique as permissões no diretório onde você está tentando colocar os arquivos com ls -ld directory_name
. Por exemplo, suponha que você esteja tentando colocar os arquivos em um diretório chamado test:
$ ls -ld test
drwxrwxr-x. 3 jdoe jdoe 61 Feb 14 10:42 test
O diretório acima é de propriedade da conta jdoe e o grupo também é jdoe. Então, se você logar no sistema Ubuntu com psftp usando a conta do jdoe, você poderá colocar os arquivos no diretório de teste porque a conta do proprietário do diretório tem permissões de leitura, gravação e execução (os primeiros caracteres rwx após o "d" indicando teste é um diretório. Qualquer conta no grupo jdoe também tem acesso de leitura, gravação e execução, o "x" também concede a capacidade de pesquisar ou ver arquivos no diretório. Os últimos 3 caracteres de permissão são r-x
concedendo outras contas nas permissões de leitura e execução do sistema, ou seja, a capacidade de pesquisar o diretório ou ver os arquivos dentro dele, mas não a permissão de gravação, ou seja, a capacidade de modificar arquivos existentes dentro do diretório ou colocar novos ali. Se você quisesse conceder a cada conta do sistema permissões de leitura, gravação e execução, você poderia usar chmod 777 test
ou chmod o+w test
, o que adiciona permissão de gravação para "outras" contas a serem testadas. permitindo qualquer conta no th e sistema Ubuntu a capacidade de colocar arquivos no diretório ou modificar os existentes. Como alternativa, se você fez login na conta que possui o diretório psftp, por exemplo, a conta do jdoe, não é necessário alterar as permissões.
Você também pode ver as permissões de dentro do psftp depois de entrar no sistema Ubuntu usando-o. Apenas digite ls
enquanto você tiver um diretório acima daquele em que você deseja armazenar os arquivos selecionados e procure as permissões no diretório em que deseja armazenar os arquivos.
Eu esperaria as mensagens de erro que você relatou se, por exemplo, você estava tentando colocar arquivos em um diretório de propriedade do root, ao qual outras contas não têm acesso de gravação.