Pertanyaan Bagaimana menemukan direktori di linux?


Saya memiliki VPS dengan Suse Linux 10.3.

Saya sudah masuk via SSH / dempul dan saya mencoba mencari di mana file web saya berada.

Karena saya mengunggah melalui FTP dalam direktori bernama httpdocsSaya berasumsi bahwa direktori ini ada di suatu tempat.

Pencarian google saya telah mengajari saya untuk melakukan ini, pergi ke direktori root saya dan ketik:

find httpdocs -type d

tetapi dikatakan "tidak ada berkas atau direktori seperti itu".

Bagaimana saya bisa menemukan direktori ini?


399
2018-06-28 17:51


asal


Jika seseorang bertanya-tanya, perintah dalam pertanyaan itu menemukan semua direktori (-type d) di entri direktori httpdocs (relatif terhadap direktori kerja saat ini, biasanya tetapi belum tentu direktori). Gagal dengan pesan kesalahan karena tidak ada entri direktori httpdocs dalam direktori root sistem, dan oleh karena itu tidak ada titik awal untuk pencarian. - Daniel Beck♦


Jawaban:


Ini:

find / -type d -name 'httpdocs'

parameter pertama "/" adalah tempat untuk melihat, dalam hal ini "/" itu seluruh sistem.

-Nama bisa menjadi -ama untuk mengabaikan kasus

juga -type tidak wajib

gunakan: pria temukan untuk opsi lainnya


546
2018-06-28 18:00



find / -name 'httpdocs' berfungsi dengan baik terima kasih - Edward Tanguay
Mungkin tidak masalah untuk pencarian sederhana, tetapi untuk perintah pencarian yang lebih kompleks, perlu dicatat bahwa hal-hal dievaluasi dalam urutan pada commandline. Jadi, Anda mungkin ingin memiliki -type d (hanya direktori) sebelum -name, untuk mempercepat pekerjaan. Sekali lagi, ini mungkin tidak terlalu penting di sini, tetapi ketika masuk ke pencarian yang lebih kompleks, ini dapat meningkatkan kecepatan pencarian secara signifikan. - Dominic Eidson
Sebenarnya, itu -name tes lebih cepat daripada sebagian besar tes lain sejak -name dicocokkan dengan daftar direktori, yang sudah dimuat dari disk, dan tes lain perlu melakukan stat(2) untuk mendapatkan informasi file. Setelah yang pertama stat() panggilan untuk file, tes selanjutnya dapatkan dari memori, misalnya: -type f -mtime -10. - Arcege
Jika Anda akan melakukan pencarian di seluruh sistem file, terutama server, maka itu biasanya baik untuk digunakan nicesehingga penemuan tidak mengambil terlalu banyak sumber daya dari proses yang lebih penting: nice find / ... - Arcege
Saya akan menambahkan 2> / dev / null untuk menghindari hasil pencarian saya disembunyikan di semua kesalahan izin. - Jason Yeo


perintah ini harus memberikan apa yang Anda cari:

find / -type d -name httpdocs

yang akan mencari dari root server Anda untuk direktori dengan nama httpdocs atau jika Anda hanya ingin mencari dari direktori saat ini menggantikan '/' dengan '.'

Perintah lain yang dapat Anda coba adalah menemukan Anda akan melakukan sesuatu seperti:

locate httpdocs

60
2018-06-28 18:00



cari httpdocs memberitahu saya "locate: command not found" - Edward Tanguay
Bagi mereka yang menggunakan perintah "locate" (mengingat bahwa ia ada di sistem Anda), pastikan bahwa database yang dicari sudah up-to-date; biasanya beberapa pekerjaan cron mengurusnya. Jika tidak, jalankan "updatedb" (menjadi root). Kemudian jalankan kebutuhan Anda "temukan <somefile>". Ini diperlukan untuk menemukan file / direktori yang baru ditambahkan. - David Ramirez
+1 untuk mencari. Nya banyak lebih cepat tetapi hanya jika indeksnya sudah diperbarui. Untungnya, sesuatu seperti "httpdocs" tidak akan sering mengubah lokasi. Jika Anda berencana berulang kali mencari file di mesin, ada baiknya beberapa menit diperlukan untuk mengatur tugas cron updatedb. - Doug Harris
Juga dalam banyak kasus, locate akan mengembalikan terlalu banyak hasil karena semua file 100k di direktori itu akan muncul. Dalam kasus khusus ini jika setiap pengguna memiliki httpdocs mereka sendiri dengan 100 atau 1000 file, maka hasil yang diinginkan OP mungkin akan hilang. - Jistanidiot
+1 untuk mencari ... Saya terus memperbarui basis data saya sehingga perintah ini sangat berguna ... Ide bagus. - nicorellius


find / -type d -name httpdocs 2> /dev/null

Ini akan menghilangkan semua pesan kesalahan yang mungkin Anda (baca, selalu) dapatkan ketika tidak melakukan ini sebagai pengguna root. Akan merekomendasikan melakukannya dengan cara ini.


26
2017-11-08 01:04



Itu 2> /dev/null pilihan sangat membantu. Kalau tidak, akan sulit untuk melihat hasil yang diinginkan ... - Gottlieb Notschnabel
Lihat juga Bagaimana saya dapat mengecualikan semua pesan "izin ditolak" dari "temukan"? - galath


Penting untuk mengetahui parameter -ame untuk mencari pola "case insensitive" dan penggunaan wildcard: *,?, Dll.

Dua contoh:

Cari semua file dari / root yang berisi string "Linux", case insensitive:

find  /root -type f -iname "*linux*"

Cari semua direktori dari / root yang berisi string "Linux", case insensitive:

find  /root -type d -iname "*linux*"

Diekstrak dari sini:

http://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con-find.html


10
2017-12-06 23:50



Pertanyaan ini adalah tentang bagaimana menemukan direktori yang namanya Anda ketahui, bukan bagaimana menemukan direktori yang namanya Anda ketahui (kurang-lebih). Selain itu, jawaban yang diterima (dari lebih dari 6 tahun yang lalu!) Sudah disebutkan -iname sebagai alternatif yang tidak sensitif terhadap kasus -name. - G-Man


Anda hampir memilikinya. sintaks yang benar adalah:

find / -type d -name httpdocs

Direktori mungkin di bawah /var/www/


9
2018-06-28 18:02



yang memberi tahu saya "jalur harus mendahului ekspresi" - Edward Tanguay