(5 jawaban)
Tutup 4 tahun yang lalu.
Bagaimana saya bisa mencari seluruh sistem file Linux saya untuk semua file python (file dengan ekstensi .py
)? Saya tahu saya dapat melakukan find -name filename
tapi bagaimana saya bisa melakukannya untuk jenis file?
Jawaban yang Diterima:
Tidak semua file python akan memiliki ekstensi file .py
– Coba jalankan grep -rni python /usr/bin
Misalnya). Sebagian besar skrip ini akan memiliki baris 'shebang' (atau hashbang) (mis. #!/usr/bin/env python
, #!/usr/bin/python2.7
). Ini memberi tahu penerjemah skrip program mana yang perlu digunakan untuk menjalankannya, dan Anda dapat mencari ini untuk menemukan file python
Namun, Anda juga dapat menggunakan mimetype file (biasanya di sepanjang baris text/x-python
) untuk menemukannya:
find / -type f | while read in ; do if file -i "${in}" | grep -q x-python ; then echo "${in}" ; fi ; done
Dimana /
adalah direktori pencarian yang Anda maksud.
Dengan find
anda juga dapat menambahkan -executable
opsi untuk mencari hanya file yang dapat dieksekusi. Juga penggunaan -type f
batasi find untuk hanya mencari file – Anda dapat mengubah ini dan kemudian menampilkan tautan simbolik dll juga (beberapa skrip terdapat di /usr/lib
etc dan di-symlink ke /usr/bin/
dll) . Lebih banyak opsi tersedia, Anda dapat melihatnya dengan menjalankan man find
.
file
harus dapat menebak jenis file meskipun file tidak memiliki ekstensi dll (menggunakan baris Shebang dll) – lihat di sini.
Untuk menghapus find: ‘/.../FILE’: Permission denied
dll kesalahan, Anda dapat menjalankan skrip sebagai root (menggunakan sudo bash -c "COMMAND"
, membuka shell dengan sudo su
dll), dan/atau cukup tambahkan 2>/dev/null
ke perintah find.