İletilen uzak adlar scpaslında uzak taraftaki boşlukla ayrılmış bir desen listesi olarak yorumlanır. Bu, adı boşluk içeren bir dosyayı kopyalamaya çalıştığınızda genellikle bir sıkıntıdır, ancak burada yararlıdır: scp -p 'user@machine:/path/a*' .adı ile başlayan tüm dosyaları kopyalar a.
Deseni, başka bir engelden geçmeniz koşuluyla yerel olarak değil, uzaktan yorumlanacak şekilde alıntılarsanız, komutunuz çalışır. Desen !(a*)temel bir kabuk deseni değildir, bir ksh uzantısıdır (uygun seçeneği belirlerseniz bash ve zsh da desteklenir). Uzak kabuk bazı diğer kabuk ve sensin değilse, Ksh ise bu sadece çalışır Yani exec kshgelen .profileveya buna benzer.
Bir şekilde kısıtlı veya antika bir ortamda değilseniz, unutmanın kolay yolu scp. Uzak dosyaların aynı yerel dosyalar gibi çalışmasını istiyorsunuz, bu yüzden onları yerel dosyalar yapın: uzak dizini sshfs ile bağlayın . Bu, yerel makinede FUSE ve uzak makinede bir SFTP sunucusu (yani başlatılan bir sftp-serveryürütülebilir dosya sshd) gerektirir.
mkdir ~/net/machine
sshfs user@machine:/ ~/net/machine
cp -p ~/net/machine/path/!(a*) .