ฉันสามารถสแกนโฟลเดอร์ที่มีโฟลเดอร์ย่อยได้หรือไม่


31

ฉันมีโฟลเดอร์ที่มีไฟล์สำหรับเว็บไซต์คงที่เช่น:

/site/index.html
/site/css/css.css
/site/js/js.js
/site/images/...

หากฉันอัปเดตบางอย่างในแล็ปท็อปของฉันฉันต้องการคำสั่งเดียวเพื่อส่งไฟล์ไปยังเซิร์ฟเวอร์ ubuntu ของฉัน ฉันไม่ต้องการเซ็ตอัพ FTP บนมันถ้าฉันไม่มีด้วยสงสัยว่า scp จะสามารถจัดการกับมันได้หรือไม่


ฉันชอบtarทางssh: unix.stackexchange.com/a/10028/79839
ลูกไก่

คำตอบ:


56

คำสั่งscp -r source user@target:destจะเดินไดเรกทอรีย่อยทั้งหมดของแหล่งที่มาและคัดลอก

อย่างไรก็ตามscpมีพฤติกรรมเหมือนcpและคัดลอกไฟล์เสมอแม้ว่าจะเหมือนกันทั้งบนต้นทางและปลายทาง [ดูที่นี่สำหรับการแก้ปัญหา.]

เช่นนี้เป็นเว็บไซต์คงที่คุณจะมีโอกาสมากที่สุดเพียงทำให้การอัปเดตได้อีกครั้งการสร้างสิ่งที่ทั้งดังนั้นคุณอาจจะได้พบกับสิ่งที่ย้ายไปเร็วขึ้นถ้าคุณใช้rsyncผ่าน SSH scpแทน อาจเป็นสิ่งที่ชอบ

rsync -av -e ssh source user@target:dest

...ที่จะเริ่มต้น. ถ้าคุณทำเช่นนี้ผ่าน LAN, ผมเองจะใช้ตัวเลือกแทน -avWrsync

Rsync ให้ความสามารถในการลบข้อมูลซ้ำในแหล่งที่มาของคุณ ดังนั้นหากคุณลบไฟล์จากทรีของคุณคุณสามารถเรียกใช้rsyncข้างต้นและรวมถึงการตั้งค่าสถานะ--deleteและมันจะลบไฟล์เดียวกันจากด้านปลายทาง


9

scp มีแฟลกซ้ำที่จะทำสิ่งที่คุณต้องการ scp -r /base/directory user@server:/to/location

จาก man scp

-r      Recursively copy entire directories.  Note that scp follows symbolic
          links encountered in the tree traversal.

2

scp -r และ rsync -r เป็นวิธีที่น่าเชื่อถือที่สุดในการได้รับสิ่งที่คุณต้องการ

คุณยังสามารถใช้ sshfs เพื่อ 'mount' มันเหมือนกับว่าเป็นไดรฟ์ในเครื่อง: sshfs user@host:/site /mnt/mountpoint

(อย่างไรก็ตามคุณน่าจะดีกว่าที่จะทำงานในพื้นที่และปรับใช้กับ rsync เป็นอีกเครื่องมือหนึ่งที่ต้องระวัง)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.