วิธีหยุด cp: overwrite './xxx' รวดเร็ว


19

ฉันจะหยุดคำสั่ง cp จากการพร้อมต์เพื่อเขียนทับได้อย่างไร ฉันต้องการเขียนทับไฟล์ทั้งหมดโดยไม่ต้องกลับไปที่เทอร์มินัล เนื่องจากไฟล์เหล่านี้มีขนาดใหญ่และใช้เวลาพอสมควร

ฉันพยายามใช้ตัวเลือก -f มันยังถามว่าฉันต้องการเขียนทับหรือไม่

   -f, --force
          if an existing destination file cannot be opened, remove it and
          try again (redundant if the -n option is used)

cp -f /media/somedir/somefiles* .  
cp: overwrite `./somefilesxxx'? y

คำตอบ:


17

นอกเหนือจากการโทร/bin/cpแล้วคุณสามารถเลือกทำสิ่งใดสิ่งหนึ่งต่อไปนี้

\cp -f ...
command cp -f ...

อย่างไรก็ตามฉันยอมรับว่าคุณไม่ควรคุ้นเคยกับการใช้นามแฝงเช่นcp -iหรือrm -i- หากคุณนั่งที่กระสุนอื่นคุณจะไม่มีเครือข่ายความปลอดภัยที่คุณต้องพึ่งพา


1
whereis cpจะแสดงที่เป็นคำสั่ง ดังนั้นคุณจะสามารถเรียกคำสั่งจริงแทนนามแฝงได้
AnthonyB

12

หลังจากเห็นวิธีนี้ ฉันจะเห็นว่าคุณสมบัตินามแฝง bashes ทำให้เกิดปัญหา http://systembash.com/content/prompt-to-confirm-copy-even-with-cp-f/

which cp  
alias cp='cp -i'
/bin/cp
which cp | grep cp
alias cp='cp -i'
/bin/cp

เขาแนะนำ

unalias cp

ฉันยังต้องการเก็บชื่อแทนไว้ฉันไม่ต้องการให้มันใช้กับอินสแตนซ์นี้ วิธีแก้ปัญหาของฉันคือใช้ไบนารี่กับพา ธ เต็มดังนั้นฟังก์ชัน bias alias จะไม่เข้าแทนที่ ที่ใช้งานได้ค่อนข้างดี

/bin/cp -f /media/somedir/somefiles* .  

4

น่าเสียดายที่บน Linux คำสั่ง copy "cp" ไม่มีตัวเลือกให้ตอบคำถามนี้โดยอัตโนมัติด้วยคำตอบ "y" หรือ "n" มีวิธีแก้ไขปัญหานี้มากกว่าหนึ่งวิธีขึ้นอยู่กับสิ่งที่คุณต้องการทำ ทางออกหนึ่งคือการใช้คำสั่ง Unix "ใช่" คำสั่งนี้จะส่งออกสตริงซ้ำ ๆ จนกว่าจะฆ่า

หากเราต้องการเขียนทับไฟล์ทั้งหมดในไดเรกทอรีปลายทางคุณสามารถใช้คำสั่ง "ใช่" เพื่อตอบคำถามทุกข้อด้วย "y" "y" เป็นค่าเริ่มต้นดังนั้นจึงไม่จำเป็นต้องระบุ

yes | cp source/*.txt destination/.

หากเราต้องการหลีกเลี่ยงการเขียนทับไฟล์ใด ๆ ในไดเรกทอรีปลายทางคุณสามารถใช้คำสั่ง "ใช่" เพื่อตอบคำถามทุกข้อด้วยคำว่า "n"

yes n | cp source/*.txt destination/.

ใช้ "man yes" สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง "ใช่"

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