Câu trả lời:
Tôi khá chắc chắn rằng -R
cờ hoạt động - dù sao nó luôn có cho tôi. Những gì không hoạt động, và những gì làm tôi vấp ngã sớm trong việc sử dụng dòng lệnh của mình, đang sử dụng *
trong một thư mục chứa các tệp / thư mục ẩn. Làm như vậy
$ chown -R /home/user/*
sẽ không làm các tập tin và thư mục ẩn. Tuy nhiên nếu bạn làm theo nó với
$ chown -R /home/user/.[^.]*
sau đó bạn sẽ làm tất cả các tập tin ẩn, (nhưng không .
hoặc ..
như /home/user/.*
sẽ làm). Đã nói tất cả, tôi sẽ mong đợi
$ chown -R /home/user
để có được tất cả các tệp và thư mục ẩn bên trong /home/user
- mặc dù điều đó tất nhiên cũng sẽ thay đổi quyền của chính thư mục, đây có thể không phải là những gì bạn dự định.
chown nginx:nginx -R /path/to/.[^.]*
và nó chỉ thay đổi quyền sở hữu thành các tập tin ẩn. không phải tất cả.
*
và làm theo nó .[.^]*
để có được tất cả các tệp.
tôi tin rằng lệnh sau sẽ làm việc cho điều này
chown -hR userid:usergroup /nameofdirectory/nameofsubdir/
"chown -R" hoạt động, nhưng một giải pháp thay thế sẽ được sử dụng find.
find /path/to/dir -exec chown USER {} \;
+
thay vì ;
làm dấu kết thúc cho -exec sẽ hiệu quả hơn vì nó sẽ sử dụng số lượng dĩa cần thiết tối thiểu để thay vì một ngã ba trên mỗi tệp / thư mục
Bạn có thể thay đổi dotglob
thuộc tính tạm thời để mở rộng. tập tin và sau đó hoàn nguyên nó.
shopt -s dotglob; chown -R user:group FOLDER; shopt -u dotglob
Thêm về dotglob
có thể được tìm thấy ở đây
Sử dụng cho vòng lặp với ls -A
tùy chọn, Chúng tôi có thể tìm thấy tất cả các file ẩn và thư mục loại trừ .
và ..
và sau đó thay đổi quyền sở hữu đối với tất cả các file và thư mục ẩn.
for i in `ls -A | grep "^\."`;do chown -R user:group $i;done
Sử dụng xargs
tùy chọn vớils -A
ls -A | grep "^\." | xargs chown user:group
Để biết thêm chi tiết Bấm vào đây và truy cập trang web của tôi
Ngoài ra, nếu bạn giống tôi, có lẽ bạn sẽ chạy chown chủ yếu từ thư mục hiện tại. Tôi đã quen với việc chạy nó như thế này : chown rails.rails -R *
. Đơn giản chỉ cần thay đổi dấu hoa thị thành dấu chấm (viết tắt của thư mục hiện tại) như thế này: chown rails.rails -R .
mang lại tất cả các thư mục ẩn.
chown
sẽ làm việc với các tập tin và thư mục ẩn. Trong ví dụ sau, chúng tôi sẽ thay đổi quyền sở hữu nhóm và người dùng cho tất cả các tệp trong ~/some/folder
. Tất cả các file bao gồm tất cả ẩn file (ví dụ .bashrc
, .profile
vv) và thư mục ở ~/some/folder
mức độ và dưới đây. Đặc biệt lưu ý rằng chúng tôi không muốn thay đổi quyền sở hữu ~/some
và vì vậy chúng tôi sẽ loại trừ tệp ~/some/..
khỏi các thay đổi quyền sở hữu.
$ cd ~/some/folder
$ sudo chown -R usrname:grpname .
$
Bạn có thể làm một cái gì đó như
for i in `ls -A`;do chown -R user:group $i;done
Các -A
( vốn A) là quan trọng vì nó không bao gồm '' và '..'
chown
trên thư mục có tác dụng phụ là bạn thay đổi các quyền trên chính thư mục cũng như tất cả nội dung của nó, có thể hoặc không thể là những gì bạn muốn.