หลังจากที่ฉันใช้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)