Score:0

เรียกใช้คำสั่งกับหลายไดเร็กทอรีที่มีชื่อแตกต่างกันเล็กน้อย

ธง tr

ฉันต้องการเรียกใช้คำสั่งเพื่อลบข้อมูลสำรองเพื่อลดการใช้ดิสก์ ไม่แน่ใจว่าเป็นอย่างไร แต่ * แสดงถึงไดเร็กทอรีทั้งหมดภายใต้ เว็บไซต์ ไดเรกทอรี

sudo rm -r ไซต์/*/ส่วนตัว/สำรอง/*

โครงสร้างไดเร็กทอรีของฉันจะเป็นดังนี้:

ls ไซต์ 

ไซต์/สวัสดี/ส่วนตัว/สำรองข้อมูล/
ไซต์/โลก/ส่วนตัว/สำรองข้อมูล/
ไซต์/hello_world.txt

นี้ไม่ทำงาน

pLumo avatar
in flag
"สิ่งนี้ไม่ทำงาน" ไม่ใช่คำอธิบายข้อผิดพลาดที่ดี เกิดอะไรขึ้นและคุณคาดหวังอะไรจะเกิดขึ้น?
Score:0
ธง it

หมายเหตุ: นี่ถือว่าคุณใช้ข้อตกลงในการเพิ่ม ~ คำต่อท้ายการสำรองข้อมูล หากคุณใช้อย่างอื่น คุณต้องเปลี่ยน หา โต้แย้งตามนั้น ตัวอย่างเช่น ถ้าคุณใช้ ถ้าคุณ แทนสิ่งที่ชอบ .บัก, *~ ควรจะเป็น .บัก.

ลองสิ่งนี้:

ขั้นแรกให้เรียกใช้

sudo ค้นหา /sites -type f -name '*~' 

และดูผ่านเอาต์พุต หากคุณสะดวกใจที่จะลบไฟล์ในรายการ ให้ป้อนคำสั่งอีกครั้ง แต่ไพพ์เอาต์พุตไปที่ rm เช่นเดียวกับใน

sudo ค้นหา /sites -type f -name '*~' -print0 | xargs -0 /usr/bin/rm

สิ่งนี้จะทำให้เชลล์ดำเนินการ rm ชื่อเส้นทาง ในแต่ละ PATHNAME ในรายการ

เดอะ * ตัวละครใน ทุบตี เป็นอักขระตัวแทน มันจะจับคู่อย่างน้อยหนึ่งอินสแตนซ์ของตัวละครเกือบทุกชนิด ข้อยกเว้นที่โดดเด่นที่สุดของกฎนี้คือ / อักขระ ซึ่งเป็นเหตุผลว่าทำไมในตัวอย่างของคุณจึงจับคู่ไดเร็กทอรีครั้งละหนึ่งไดเร็กทอรีเท่านั้น ใช้ ** เพื่อจับคู่ไดเร็กทอรีจำนวนเท่าใดก็ได้ในชื่อพาธ

แก้ไข:

เพิ่งสังเกตเห็นว่าคุณระบุไดเร็กทอรีของคุณเป็น เว็บไซต์/... และไม่ /ไซต์/.... คุณต้องแน่ใจว่าได้ส่งพารามิเตอร์ตัวแรกไปที่ หา คือ เส้นทางเต็ม ไปยังไดเร็กทอรี มิฉะนั้นก็จะส่งคืนข้อผิดพลาด

แก้ไข 2:

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

sudo ค้นหา /sites -type f -name '*~' -delete

เป็นเคล็ดลับสุดท้ายหากคุณใช้ หา จำนวนมากและมีการสำรองข้อมูลระบบ คุณจะเห็นว่าผลลัพธ์ของคุณถูกแทนที่ด้วยรายการที่ซ้ำกัน ถ้าเป็นเช่นนั้นให้ค้นหา -พรุน ตัวเลือก. มันจะเก็บสิ่งที่ตรงกับอาร์กิวเมนต์ที่เกี่ยวข้องออกจากเอาต์พุต

Nate T avatar
it flag
@steeldriver ขอบคุณ...อีกครั้ง ฉันคิดว่ามันอ่านจาก stdin เมื่อไม่มีการโต้แย้ง ฉันตรวจสอบทุกอย่างในเทอร์มินัลของฉัน เพียงเพราะฉันไม่ต้องการให้มีใครลบระบบไฟล์ในบัญชีของฉัน ตอนนี้ฉันหวังว่า Id ได้สร้างไฟล์จำลองหรือสองไฟล์ ความผิดพลาดของฉัน. กำลังแก้ไขอยู่ในขณะนี้ ขอบคุณอีกครั้ง.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา