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?
command-line
chown
Marco Marsala
sumber
sumber
chown -R myuser:mygroup ./*
Jawaban:
Karena ekspansi glob (pathname) dilakukan terlebih dahulu oleh shell sebelum
chown
berjalan, pola glob*
diperluas ke semua file di direktori saat ini terlebih dahulu danchown
mendapatkan mereka sebagai opsi dan argumennya. Anda memiliki file di direktori saat ini yang dimulai dengan-i
, karenanyachown
mempertimbangkannya sebagai opsi, bukan sebagai argumen (nama file).Anda perlu menggunakan
--
untuk menunjukkan akhir opsi untukchown
:Atau mendahului pola gumpalan (
*
) dengan./
untuk secara eksplisit menunjukkannya sebagai argumen:sumber
chown -R myuser:mygroup ./*
, terbagi ke dalamchown
,-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.Masalahnya adalah file bernama
-index.php
di folder, jadi chown menafsirkannya sebagai opsi baris perintah.Solusinya menggunakan tanda hubung ganda
chown -R myuser:mygroup -- *
sumber