chown: opsi tidak valid - 'i' Try 'chown --help' untuk informasi lebih lanjut


15

Saya memiliki masalah aneh dengan perintah berikut:

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

perintahnya bukan alias

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

Di mana saya bisa melihat lebih jauh?


1
Anda bisa mencobachown -R myuser:mygroup ./*
Kris

Jawaban:


28

Karena ekspansi glob (pathname) dilakukan terlebih dahulu oleh shell sebelum chownberjalan, pola glob *diperluas ke semua file di direktori saat ini terlebih dahulu dan chownmendapatkan mereka sebagai opsi dan argumennya. Anda memiliki file di direktori saat ini yang dimulai dengan -i, karenanya chownmempertimbangkannya sebagai opsi, bukan sebagai argumen (nama file).

Anda perlu menggunakan --untuk menunjukkan akhir opsi untuk chown:

chown -R myuser:mygroup -- *

Atau mendahului pola gumpalan ( *) dengan ./untuk secara eksplisit menunjukkannya sebagai argumen:

chown -R myuser:mygroup ./*

Awalan dengan ./ tidak berarti argumen. (Artinya nama file di sini), tetapi ini berarti bahwa tidak ada nama yang diperluas akan terlihat seperti opsi (dimulai dengan "-"). Ketika shell melihat baris seperti chown -R myuser:mygroup ./*, terbagi ke dalam chown, -R, myuser:mygroup, ./*dan kemudian menggantikan pola gumpal dengan jalur filesystem yang sesuai, misalnya. chown, -R, myuser:mygroup, ./-index.html, ./favicon.ico, ./My -ve Numbers. Karena chown hanya mencari karakter pertama sebagai tanda hubung ketika mencari opsi args, itu akan menganggap bahwa itu adalah argumen posisi.
Jim Driscoll

7

Masalahnya adalah file bernama -index.phpdi folder, jadi chown menafsirkannya sebagai opsi baris perintah.

Solusinya menggunakan tanda hubung ganda chown -R myuser:mygroup -- *


4
bukankah ini jawaban yang sama sudah diberikan oleh @heemayl?
Kris

3
@Kris kedua jawaban diposting pada waktu yang hampir bersamaan ;-)
Rinzwind

1
Anda mengaburkan pengguna dan grup dalam pertanyaan Anda tetapi tidak dalam jawaban Anda ...
Thomas

3
@ Kris Sepertinya dia tidak mungkin menyalin jawaban lain dalam waktu 39 detik setelah diajukan.
UTF-8

maaf, saya tidak bermaksud mengatakan demikian.
Kris
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.