@beduin01

Проблема с SCP или почему ls не видит файлы?

Копируй с Windows через scp файлы на Linux сервер в папку foo.
На первом шаге идет удаление файлов. На втором копирование.

ssh root@site.ru "rm -r /srv/foo"
scp -r "D:/code/foo" root@site.ru:/srv/foo

Проблема в том что пока не перезайду в папку foo:
cd ...
cd foo

то ls файлы не покажет. Показывает пустоту. Не могу понять в чем причина?
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
scp тут ни при чём, да и ls тоже. Так работает практически любой шелл в линуксе. Он запоминает текущую папку не (только) по имени, но и по её фактическому расположению на диске. А при удалении и создании новой одноимённой папки фактическое положение меняется.

Точно такого же эффекта можно добиться и без scp. Просто удалив папку и создав на её месте новую (собственно именно это и произошло).

Вместо cd ..; cd foo можно сделать cd ..

/tmp/q$ ls -l
total 0
-rw-rw-r-- 1 lynn lynn 0 nov  1 16:01 2
$ rm -r ../q
$ mkdir ../q
$ touch ../q/3
$ ls -l
total 0
$ cd .
$ ls -l
total 0
-rw-rw-r-- 1 lynn lynn 0 nov  1 16:04 3
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ssh root@site.ru "rm -r /srv/foo/*"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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