วิธีการใช้ไดเรกทอรี chmod ซ้ำโดยไม่ส่งผลกระทบต่อไฟล์?


18

หลังจากที่ฉันใช้chmod -Rกับไดเรกทอรีแล้วสิทธิ์จะเปลี่ยนสำหรับทุกสิ่งภายใน (ไฟล์และไดเรกทอรี) ฉันจะเพิ่มสิทธิ์ดำเนินการ / ค้นหา ( x) ในไดเรกทอรีโดยไม่ต้องแก้ไขไฟล์ได้อย่างไร

คำตอบ:


13

คุณสามารถใช้การค้นหา

find ./ -type d -execdir chmod 750 {} +

โดยที่ 750 เป็นโหมดที่คุณต้องการใช้และ "./" เป็นไดเรกทอรีที่คุณจะค้นหาซ้ำ

แก้ไข : ขอบคุณ @Gilles และค้นหา (1)ฉันได้แก้ไขสิ่งนี้เพื่อความปลอดภัยและประสิทธิภาพที่เพิ่มขึ้น


@Gilles ขอบคุณมันไม่บ่อยเกินไปที่ฉันเรียนรู้สิ่งใหม่เกี่ยวกับเครื่องมือ Unix :-) นั่นยอดเยี่ยมมาก นอกจากนี้ขณะนี้อ่านเอกสารการค้นหาเราควรใช้ -execdir แทน
ewindisch

7

ในกรณีนี้คุณสามารถใช้Xแทนการxเพิ่มบิตไปยังไดเรกทอรีหรือไฟล์ที่มีบิตปฏิบัติการที่ตั้งค่าไว้แล้วสำหรับผู้ใช้บางคน (เช่นchmod -R +X my_dir)

โดยทั่วไป (เช่นถ้าคุณต้องการให้ไดเรกทอรีทั้งหมดสามารถอ่านได้โดยไม่มีผลกับไฟล์) คุณสามารถใช้findกับ-type dหรือถ้าคุณใช้ zsh (หรือ bash 4 กับshopt -s globstar) **/glob (ทั้งสองโดยไม่ผ่านการ-Rตั้งค่าสถานะchmod)


@Gilles: จุดดีฉันได้เพิ่มที่คำตอบ
sepp2k

1
"ใช้ X แทน x ซึ่งจะเพิ่มบิตไปยังไดเรกทอรีหรือไฟล์ที่มีบิตปฏิบัติการที่ตั้งค่าไว้แล้วสำหรับผู้ใช้บางคน" - ขอบคุณ! ฉันคิดถึงสิ่งนี้มาก!
Ivan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.