SSH üzerinden bir Mac'e bağlanmak ve find komutunu kullanarak belirtilen dosyaları indirmek için PuTTY kullanmaya çalışıyorum.
Dosyaları yerel Windows sisteminize indirmeye mi çalışıyorsunuz?
PuTTY'nin bir SSH istemcisi olduğunu unutmayın. Tek yaptığı Mac'inize yazılı metin göndermek ve alınan çıktıyı görüntülemek. Bu nedenle koşarken scp
bunun gibi, Mac’te çalışır ve dosya adlarının Mac tarafından görüldüğü gibi belirtilmesi gerekir.
Mac'ten Windows'a dosya aktarmak istiyorsanız, scp macpath user@windowshost:windowspath
. (Örnek komutunuzda bunu tersine çevirmiş görünüyorsunuz.)
Bu, Windows bilgisayarınızın SCP özelliklerine sahip bir SSH sunucusuna ihtiyacı olduğu ve gelen SSH bağlantılarına izin vermesi gerektiği anlamına gelir.
Yerel bir Windows yolunun nasıl belirtileceğinden emin değilim.
Windows'a yüklediğiniz SSH sunucusuna bağlıdır. (Yukarıdaki paragrafa bakınız.) Ama genellikle, x:\dir\file
dönüştürülebilir /x/dir/file
. Kılavuzu oku.
Dosyaların içinde sorunlara neden olabilecek boşluklar var
Evet, bu da sorun yaratır xargs
. İle doğru yöne gittiniz xargs -0
, ama aynı şeyi yapmanız gerekir find
- find .... -print0
veya find .... -printf "%p\0"
.
Eğer sürümü find
Mac OS X'te hiçbirini desteklemez -print0
ne de -printf
, yeni satırları ayırıcı olarak kullanmaktan kurtulabilirsiniz. Bu durumda, herhangi bir özel seçenek eklemeyin find
, ama değiş xargs -0
için xargs -d '\n'
.
Daha iyi bir alternatif xargs
olduğu find -exec
.
xargs -0 scp user@host:{} localpath
Burada bir hata daha var. Varsayılan olarak, xargs
yapar değil değiştirmek {}
dosya adıyla; bunu özellikle söylemelisin -I "{}"
.
Bunu bununla karıştırmış olabilirsiniz. -exec
seçenek find
, hangi yapar böyle çalış:
find . -iname "*searchtext*" -exec scp user@host:{} localpath \;
Yukarıda, ayrıldım scp
argüman sırasını aynen orjinalinde olduğu gibi yapın. Ama daha önce de söylediğim gibi, yanlış.