หลังจากที่ฉันใช้chmod -R
กับไดเรกทอรีแล้วสิทธิ์จะเปลี่ยนสำหรับทุกสิ่งภายใน (ไฟล์และไดเรกทอรี) ฉันจะเพิ่มสิทธิ์ดำเนินการ / ค้นหา ( x
) ในไดเรกทอรีโดยไม่ต้องแก้ไขไฟล์ได้อย่างไร
หลังจากที่ฉันใช้chmod -R
กับไดเรกทอรีแล้วสิทธิ์จะเปลี่ยนสำหรับทุกสิ่งภายใน (ไฟล์และไดเรกทอรี) ฉันจะเพิ่มสิทธิ์ดำเนินการ / ค้นหา ( x
) ในไดเรกทอรีโดยไม่ต้องแก้ไขไฟล์ได้อย่างไร
คำตอบ:
คุณสามารถใช้การค้นหา
find ./ -type d -execdir chmod 750 {} +
โดยที่ 750 เป็นโหมดที่คุณต้องการใช้และ "./" เป็นไดเรกทอรีที่คุณจะค้นหาซ้ำ
แก้ไข : ขอบคุณ @Gilles และค้นหา (1)ฉันได้แก้ไขสิ่งนี้เพื่อความปลอดภัยและประสิทธิภาพที่เพิ่มขึ้น
ในกรณีนี้คุณสามารถใช้X
แทนการx
เพิ่มบิตไปยังไดเรกทอรีหรือไฟล์ที่มีบิตปฏิบัติการที่ตั้งค่าไว้แล้วสำหรับผู้ใช้บางคน (เช่นchmod -R +X my_dir
)
โดยทั่วไป (เช่นถ้าคุณต้องการให้ไดเรกทอรีทั้งหมดสามารถอ่านได้โดยไม่มีผลกับไฟล์) คุณสามารถใช้find
กับ-type d
หรือถ้าคุณใช้ zsh (หรือ bash 4 กับshopt -s globstar
) **/
glob (ทั้งสองโดยไม่ผ่านการ-R
ตั้งค่าสถานะchmod
)