Mengapa perintah direktori superuser Linux ls saya tidak menampilkan semua file?

5

Jika saya masuk dan kemudian menuju ke root superuser saya melalui:

sudo su -

Saya sekarang di direktori root. Saya dapat menampilkan daftar file dan direktori melalui ls. Namun beberapa direktori sepertinya tidak ada di sana. Sebagai contoh, saya dapat:

cd /svr/www

dan berakhir di direktori www. The svrdirektori tidak ditampilkan ketika saya ketik lsperintah dari akar, juga tidak tampak di bawah salah satu direktori yang ditampilkan.

Apa yang saya lewatkan?

UnixNewbie2012
sumber
Apa rasa khusus "Unix" ini? Apakah ini System V nyata dari tahun 1970-an, atau Anda menggunakan turunan seperti, oh saya tidak tahu, Linux atau BSD? Sebut dengan apa itu sebenarnya dan bukan istilah umum seperti "Unix".
allquixotic
Diubah ke Linux. Terima kasih telah menunjukkan ini.
UnixNewbie2012
Setelah Anda sudo su -melakukan Anda cdke direktori lain atau apakah perintah pertama yang Anda ketikkan ls?
Lipongo

Jawaban:

7

Setelah perintah, sudo su -saya pikir Anda akan menemukan Anda berada di direktori home root /rootbukan di direktori root /. Karenanya lstidak akan muncul /srv. Saya sarankan Anda gunakan pwduntuk memeriksa folder tempat Anda berada.

StarNamer
sumber
1
@allquixotic (dan lainnya) Dari respons OP, ini bukan duplikat dari pertanyaan sebelumnya!
StarNamer
2

Jika Anda berada di /direktori dan jenis ls, Anda tidak akan melihat subdirektori "rekursif". Anda hanya akan melihat direktori yang merupakan anak-anak langsung dari direktori saat ini. Jadi untuk melihat /srv/wwwAnda harus terlebih dahulu cd /srvdan kemudian ls.

Ada yang namanya rekursif ls; Namun, jika Anda membutuhkan jalur penuh, findadalah alternatif yang lebih baik.

Lihat pertanyaan StackOverflow ini yang telah menangani masalah subjek dari daftar file / direktori rekursif.

allquixotic
sumber
Maaf, saya salah ketik dalam pertanyaan di atas. Maksud saya bahwa 'svr' tidak ditampilkan di bawah root.
UnixNewbie2012
Apakah Anda tidak melihatnya dari #shell (root), atau dari $shell? Izin dapat diatur sedemikian rupa sehingga hanya pengguna root yang dapat melihat direktori ... misalnya, chmod o-x /dapat melakukan ini (jika /tidak dapat dieksekusi).
allquixotic
# shell. Apa perbedaan antara # dan $ shell sebagai root?
UnixNewbie2012
#adalah shell root. Jika Anda "login" sebagai root, shell Anda akan menjadi #. Jika Anda masuk sebagai pengguna biasa, shell Anda akan seperti itu $. Akar tidak harus menderita dari setiap kontrol akses keterbatasan izin diskresioner apapun, yang berarti bahwa chmoddan chowndan izin yang sama pada direktori / file harus diabaikan, dan tidak harus menjadi penyebab melihat perilaku seperti ini.
allquixotic
Satu hal tambahan yang dapat Anda coba adalah ls -la- opsi baris perintah tambahan akan menampilkan misalnya file tersembunyi juga ... walaupun biasanya satu-satunya file tersembunyi adalah yang dimulai dengan .karakter titik ; mereka selalu disembunyikan dari lsperintah biasa .
allquixotic