Я использую RHEL 7. У меня работает:
find. -path "*/foo/*" ! -path '*/foo/*/*' -type f
Обратите внимание на точку перед путем -. (Или подставьте туда свой путь, например, /home/$USER)
DOT говорит: «Начать поиск в текущем каталоге»
путь-говорит: «Ищите что угодно, за которым следует подкаталог -с именем foo, за которым следует что угодно», за исключением каталогов, вложенных в «foo».
Тип-f говорит: дайте мне только файлы в соответствующем каталоге.
Похоже на
-path "*/foo/*" ! -path '*/foo/*/*'
Не получает все, так как пропускает такие вещи, как ./a/foo/b/foo/c
.
Если вы можете гарантировать, что имена файлов и каталогов не будут содержать символы новой строки, вы можете опубликовать -обработку вывода с помощью awk
, например:
find. -path "*/foo/*" -type f | awk -F/ '$(NF-1) == "foo"'
Я бы просто scp
сначала отправил локальный файл на удаленный сервер.
Конечно, установка gvim в локальной системе будет работать лучше.
На вашем локальном компьютере должен быть запущен ssh, тогда вы можете
localusername@localmachine: ssh username@server -R 10000:localmachine:22
username@server: cd /var
username@server: sshfs -p 10000 -o idmap=user,nonempty \
localusername@127.0.0.1:~/mywwwdevelstuff www
Вы можете запустить программу на удаленной машине следующим образом :ssh -t <user>@<remote host> '<program to execute with full path and arguments>'
-t Force pseudo-terminal allocation. This can be used to execute arbitrary
screen-based programs on a remote machine, which can be very useful, e.g.
when implementing menu services. Multiple -t options force tty allocation,
even if ssh has no local tty.