chown: tùy chọn không hợp lệ - 'i' Thử 'chown --help' để biết thêm thông tin


15

Tôi có một vấn đề lạ với lệnh sau:

# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.

lệnh không phải là bí danh

# type chown
chown is hashed (/bin/chown)

Nơi tôi có thể nhìn xa hơn?


1
Bạn có thể thửchown -R myuser:mygroup ./*
Kris

Câu trả lời:


28

Vì việc mở rộng toàn cầu (tên đường dẫn) được thực hiện trước tiên bởi trình bao trước khi chownchạy, mẫu toàn cầu *được mở rộng cho tất cả các tệp trong thư mục hiện tại trước tiên và chownlấy đó làm các tùy chọn và đối số của nó. Bạn có một tệp trong thư mục hiện tại bắt đầu bằng -i, do đó chownđang xem nó như một tùy chọn, không phải là một đối số (tên tệp).

Bạn cần sử dụng --để chỉ ra phần cuối của các tùy chọn cho chown:

chown -R myuser:mygroup -- *

Hoặc đi trước mẫu hình cầu ( *) với ./để chỉ rõ nó là đối số:

chown -R myuser:mygroup ./*

Tiền tố với ./ không có nghĩa đó là một đối số (có nghĩa là tên tệp ở đây), nhưng điều đó có nghĩa là không có tên nào được mở rộng sẽ trông giống như một tùy chọn (bắt đầu bằng "-"). Khi vỏ nhìn thấy một dòng như chown -R myuser:mygroup ./*, nó chia tách nó thành chown, -R, myuser:mygroup, ./*và sau đó thay thế mẫu glob với các đường dẫn hệ thống tập tin tương ứng, ví dụ. chown, -R, myuser:mygroup, ./-index.html, ./favicon.ico, ./My -ve Numbers. Vì chown chỉ tìm ký tự đầu tiên là dấu gạch ngang khi tìm tùy chọn args, nên nó sẽ cho rằng đó là các đối số vị trí.
Jim Driscoll

7

Vấn đề là một tập tin có tên -index.phptrong thư mục, do đó, chown diễn giải nó như là một tùy chọn dòng lệnh.

Giải pháp là sử dụng dấu gạch nối kép chown -R myuser:mygroup -- *


4
Đây không phải là câu trả lời tương tự đã được đưa ra bởi @heemayl sao?
Kris

3
@Kris cả hai câu trả lời đã được đăng gần như cùng một lúc ;-)
Rinzwind

1
Bạn làm khó người dùng và nhóm trong câu hỏi của bạn nhưng không phải trong câu trả lời của bạn ...
Thomas

3
@Kris Không chắc là anh ta đã sao chép câu trả lời khác trong vòng 39 giây sau khi nó được đặt ra.
UTF-8

xin lỗi, tôi không có ý ám chỉ như vậy.
Kris
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.