Uygun izin olmadan yıldız işareti genişletilemez


16

Birisi bana aşağıdakileri açıklayabilir mi?

$ ls -ld /temp/sit/build/
dr-xr-s--- 3 asdf qwer 4096 Jan 31  2012 /temp/sit/build/

$ ls -ld /temp/sit/build/*
ls: /temp/sit/build/*: Permission denied

Görünüşe göre burada yıldız işareti kullanamıyorum. Ben sudo komutuyla denedim ve "izin reddedildi" yerine "böyle bir dosya yok" hatası alıyorum ...

sudo ls -l /temp/sit/build/*
ls: /temp/sit/build/batch*: No such file or directory

ama sonunda * kullanmazsam çalışır

sudo ls -l /temp/sit/build/
total 4
dr-xr-s--- 11 asdf qwer 4096 Oct  3 23:31 file

Yanıtlar:


20

*Joker karakterin genişlemesini yapan kabuk, yazdığınız kabuktur. Kabuk dizindeki dosyaların listesini okumak izni varsa, o zaman genişler /temp/sit/build/*etmek /temp/sit/build/fileve ishal sudoargümanlarla ls, -lve /temp/sit/build/file. Kabuk için herhangi eşleşme bulmak yapamıyorsa /temp/sit/build/*, o zaman yalnız desen bırakır ve (orada eşleşme, ya kabuk eşleşmeleri görmek için hiçbir izne sahip olduğundan dolayı bu kadar olsun) sudoargümanlarla denir ls, -lve /temp/sit/build/*.

Adında bir dosya olmadığından /temp/sit/build/*, lskomut bu adı iletirseniz şikayet eder. lsJoker karakterleri genişletmeyen hatırlayın , bu kabuğun işi.

Joker karakter genişletmenin okuma izniniz olmayan bir dizinde olmasını istiyorsanız, genişletme sudoçağıran kabuk yerine başlatılan bir kabukta gerçekleşmelidir sudo. sudootomatik olarak bir kabuk başlatmazsa, bunu açıkça yapmanız gerekir.

sudo sh -c 'ls -l /temp/sit/build/*'

Burada, elbette, sudo ls -l /temp/sit/build/bunun yerine yapabilirsiniz , ancak bu diğer kalıplara genelleme yapmaz.


1

Bazı nadir durumlarda No such file or directory, joker karakterli ( *) dosyaları listelemeye çalıştığınızda size verebilecek olan kabuğunuz için globbing'i devre dışı bırakmadığınızı tekrar kontrol etmeniz gerekir .

Örneğin:

$ ls /tmp/sit/build/*
/tmp/sit/build/file
$ set -f
$ ls /tmp/sit/build/*
ls: cannot access /tmp/sit/build/*: No such file or directory
$ set +f
$ ls /tmp/sit/build/*
/tmp/sit/build/file

help setDaha fazla bilgi için kontrol edin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.