Aşağıdaki komutla garip bir sorunum var:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
komut takma ad değil
# type chown
chown is hashed (/bin/chown)
Daha fazla nereye bakabilirim?
Aşağıdaki komutla garip bir sorunum var:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
komut takma ad değil
# type chown
chown is hashed (/bin/chown)
Daha fazla nereye bakabilirim?
Yanıtlar:
Glob (pathname) genişletmesi önce chown
çalıştırma tarafından kabuk tarafından yapıldığından , glob deseni önce *
geçerli dizindeki tüm dosyalara genişletilir ve chown
bunları seçenekleri ve argümanları olarak alır. Geçerli dizinde, ile başlayan bir dosyanız var -i
, bu nedenle dosyayı chown
argüman (dosya adı) olarak değil, bir seçenek olarak görüyorsunuz.
--
Aşağıdakiler için seçeneklerin sonunu belirtmek için kullanmanız gerekir chown
:
chown -R myuser:mygroup -- *
Veya açıkça argüman olarak belirtmek için glob kalıbının ( *
) önüne ./
geçin:
chown -R myuser:mygroup ./*
chown -R myuser:mygroup ./*
, bu böler chown
, -R
, myuser:mygroup
, ./*
ve daha sonra örneğin karşılık gelen dosya sistemi yolları ile topak biçimlerinin yerine. chown
, -R
, myuser:mygroup
, ./-index.html
, ./favicon.ico
, ./My -ve Numbers
. Chown seçenek argümanlarını ararken yalnızca ilk karakterin tire işareti aradığından, bunların konumsal argümanlar olduğunu varsayar.
Sorun -index.php
klasörde adlandırılan bir dosyaydı, bu nedenle chown onu komut satırı seçeneği olarak yorumladı.
Çözüm çift tireleri kullanıyor chown -R myuser:mygroup -- *
chown -R myuser:mygroup ./*