ชื่อระยะไกลที่ส่งไปยังscp
ถูกตีความว่าเป็นรายการรูปแบบที่คั่นด้วยช่องว่างในด้านระยะไกล นี้มักจะเป็นความน่ารำคาญเมื่อคุณพยายามที่จะคัดลอกไฟล์ที่มีชื่อมีช่องว่าง แต่ที่นี่มันมีประโยชน์: จะคัดลอกไฟล์ทั้งหมดที่มีชื่อขึ้นต้นด้วยscp -p 'user@machine:/path/a*' .
a
คำสั่งของคุณจะทำงานหากคุณพูดถึงรูปแบบเพื่อให้ตีความได้จากระยะไกลมากกว่าในพื้นที่หากคุณผ่านอุปสรรค์อื่น รูปแบบ!(a*)
ไม่ใช่รูปแบบเชลล์พื้นฐานเป็นส่วนขยาย ksh (bash และ zsh นั้นรองรับหากคุณตั้งค่าตัวเลือกที่เหมาะสม) ดังนั้นสิ่งนี้จะใช้ได้ก็ต่อเมื่อรีโมตเชลล์ของคุณเป็น ksh ไม่ใช่ว่าเป็นเชลล์อื่นและคุณexec ksh
จาก.profile
หรือคล้ายกัน
วิธีที่ง่ายเว้นแต่คุณอยู่ในชนิดของสภาพแวดล้อมที่ถูก จำกัด scp
หรือโบราณบางส่วนเป็นจะลืมเกี่ยวกับ คุณต้องการไฟล์ระยะไกลในการทำงานเช่นเดียวกับไฟล์ในท้องถิ่นเพื่อให้พวกเขาไฟล์ท้องถิ่น: ติดไดเรกทอรีระยะไกลด้วยsshfs สิ่งนี้ต้องการ FUSE บนเครื่องโลคัลและเซิร์ฟเวอร์ SFTP (เช่นsftp-server
ไฟล์เรียกทำงานที่sshd
เรียกทำงาน) บนเครื่องรีโมต
mkdir ~/net/machine
sshfs user@machine:/ ~/net/machine
cp -p ~/net/machine/path/!(a*) .