ฉันจะคัดลอกไดเรกทอรีและเปลี่ยนชื่อในคำสั่งเดียวกันได้อย่างไร


15

ขณะนี้ฉันใช้คำสั่งสองคำสั่งนี้เพื่อสร้างการสำรองข้อมูลอย่างรวดเร็วของไดเรกทอรี มีวิธีการรวมสองคำสั่งเป็นหนึ่งเดียวดังนั้นฉันจะคัดลอกและเปลี่ยนชื่อไดเรกทอรีใหม่ในคำสั่งเดียว?

#cp -R /tf/Custom_App /tf/Custom_App_backups/
#mv /tf/Custom_App_backups/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21

1
cp -R /tf/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
jesse_b

วิธีการกำหนดนามแฝงหรือฟังก์ชั่นสำหรับสองสิ่งนั้น)
LinuxSecurityFreak

คำตอบ:


21

คุณน่าจะทำได้

cp -R /tf/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21

อย่างไรก็ตามหากไดเรกทอรีเป้าหมายมีอยู่แล้วสิ่งนี้จะผนวกส่วนสุดท้ายของเส้นทางต้นทางไปยังเส้นทางปลายทางสร้าง /tf/Custom_App_backups/Custom_App_2017-12-21/Custom_Appและคัดลอกส่วนที่เหลือของทรีภายในนั้น

เพื่อป้องกันสิ่งนี้ใช้/tf/Custom_App/.เป็นแหล่งที่มา แน่นอนว่าในกรณีนี้คุณอาจต้องการrm -r /tf/Custom_App_backups/Custom_App_2017-12-21ก่อนถ้าคุณไม่ต้องการให้ไฟล์เก่าวางอยู่รอบ ๆ นั้นหลังจากคัดลอก

ความแตกต่างระหว่าง/some/dirและ/some/dir/.ถูกกล่าวถึงในขณะที่กลับมาในcp พฤติกรรมแปลก ๆ เมื่อ (dot) หรือ .. (dot dot) เป็นไดเรกทอรีต้นทาง


อีกทางเลือกหนึ่งในการส่งต่อ.เป็นไดเรกทอรีต้นทางคือการใช้การ-Tตั้งค่าสถานะเพื่อบอกcpให้เขียนทับปลายทางแทนที่จะสร้างสมาชิกใหม่ภายใน
Toby Speight

@TobySpeight ... ใน cpGNU
ilkkachu

1
/tf/Custom_app/.เคล็ดลับคือสิ่งที่ฉันต้องการ
Martin Bonner สนับสนุน Monica

cp -aยังใช้งานได้
flow2k

1
@ flow2k โดยเฉพาะอย่างยิ่งโปรแกรมอรรถประโยชน์ของ GNU มีตัวเลือกที่ไม่ได้มาตรฐานมากมายซึ่งส่วนใหญ่มีประโยชน์มากมาย cp -aแน่นอนปรากฏยังอยู่ในเช่นFreeBSDและOpenBSDแต่ก็ยังคงไม่ได้เป็นคุณสมบัติมาตรฐานที่เป็นที่ไม่ได้ระบุโดยPOSIX ( cp -Tดังที่ได้กล่าวไว้ก่อนหน้านี้ดูเหมือนว่าเป็น GNUism ไม่ใช่ POSIX และไม่อยู่ใน BSD เท่าที่ฉันจะเห็น)
ilkkachu

1

หรือคุณสามารถทำได้โดยทำดังนี้

mkdir /tf/Custom_App_backups/Custom_App_2017-12-21 # prepare the target location
cp -R /tf/Custom_app/. /tf/Custom_App_backups/Custom_App_2017-12-21 # copy only the contents

สิ่งนี้จะช่วยให้คุณระบุตำแหน่งที่กำหนดเองไว้ล่วงหน้า นอกจากนี้โปรดสังเกตว่ามันใช้คำต่อท้าย/.ซึ่งอนุญาตให้คุณคัดลอกเนื้อหาเท่านั้นและแยกโฟลเดอร์ที่มี - ในกรณีนี้คือCustom_appโฟลเดอร์

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