Saya pengguna linux pemula dan saya mencoba mengirim daftar panjang file dari satu komputer ke komputer lain. Daftar argumen terlalu panjang, jadi saya menggunakan find. Tapi saya kesulitan mengatur ekspresi. Adakah yang bisa membantu?
Inilah yang biasanya saya ketik untuk daftar argumen pendek.
scp ./* phogan@computer/directory...
Inilah saya pikir ini mungkin diterjemahkan dengan find.
scp find . -name "*" phogan@computer/directory...
Mungkin saya bisa menggunakan pipa? Setiap saran akan membantu. Terima kasih sebelumnya.
Anda dapat melakukannya hanya dengan satu perintah
scp
.scp
:Pastikan untuk merangkum
find
perintah di antara backticks ` dan bukan tanda kutip tunggal ' .sumber
scp `find <path> -name <expression>` user@host:<path_where_to_copy>
-r
scp -r
adalah untuk rekursi pada satu entri (direktori), bukan untuk banyak entri (banyak file).sumber
grep -l pattern *
saya akan menyarankan
Perhatikan, bahwa solusi ini menghindari memiliki nama file pada baris perintah di mana mereka dapat ditafsirkan sebagai argumen baris perintah.
Hal lain yang harus diperhatikan adalah nama file mungkin berisi spasi. Ini berarti bahwa for for in bash mungkin mengalami kesulitan dengan daftar nama file.
sumber