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ış.