ฉันต้องการเปลี่ยนสิทธิ์บนต้นไม้ใน Centos 4 เพื่อเพิ่มสิทธิ์ดำเนินการสำหรับไดเรกทอรีทั้งหมดซ้ำจากไดเรกทอรี หากฉันใช้ chmod ปกติไฟล์อื่นที่ไม่ใช่ไดเรกทอรีก็จะถูกแก้ไขด้วย:
chmod -R o+x /my/path/here
ฉันจะส่งผลกระทบต่อไดเรกทอรีได้อย่างไร
ฉันต้องการเปลี่ยนสิทธิ์บนต้นไม้ใน Centos 4 เพื่อเพิ่มสิทธิ์ดำเนินการสำหรับไดเรกทอรีทั้งหมดซ้ำจากไดเรกทอรี หากฉันใช้ chmod ปกติไฟล์อื่นที่ไม่ใช่ไดเรกทอรีก็จะถูกแก้ไขด้วย:
chmod -R o+x /my/path/here
ฉันจะส่งผลกระทบต่อไดเรกทอรีได้อย่างไร
คำตอบ:
เรียกใช้find
บน-type d
( ไดเรกทอรี ) โดยมี-exec
หลักในการดำเนินการchmod
เฉพาะในโฟลเดอร์:
find /your/path/here -type d -exec chmod o+x {} \;
เพื่อให้แน่ใจว่ามันใช้งานได้กับวัตถุที่ต้องการเท่านั้นคุณสามารถเรียกใช้find /your/path/here -type d
ก่อนได้ มันจะพิมพ์ไดเรกทอรีที่พบ
ดูตัวอย่างบรรทัดคำสั่ง - chmodใน Wikipedia
chmod -R a-x+X directory remove the execute permission on all files in
a directory tree, while allowing for directory browsing.
เพิ่มโดย Daniel: สิ่งนี้ควรใช้ในกรณีของคุณ:
chmod -R o+X directory
chmod -R o+X directory
ควรใช้กับ OP
find /home/mydir -type d | xargs chmod ugo+rx
ใช้งานได้กับ CentOS6 ซึ่งหา -exec ด้านบนไม่ได้ โดยทั่วไปแล้วมันเพียงท่อรายการของไดเรกทอรีไปยังคำสั่ง xargs ซึ่งส่งไปยัง chmod chmod จากนั้นตั้งค่าสากลอ่านและดำเนินการ (ค้นหา) บนไดเรกทอรี ในการทำเช่นนี้สำหรับผู้ใช้ทุกคนในบ้านใช้ sudo:
sudo sh -c "find /home/ -type d | xargs chmod ugo+rx"