Bayangkan Anda sedang mengerjakan suatu sistem dan seseorang secara tidak sengaja menghapus
ls
perintah (/bin/ls
). Bagaimana Anda bisa mendapatkan daftar file di direktori saat ini? Cobalah.
Saya mencoba banyak metode dan juga mencari di Internet tetapi tidak ada. Saya ingin bertanya di samping ls
perintah perintah apa yang dapat kita gunakan untuk mencantumkan semua file.
shell
command-line
ls
Eduard Florinescu
sumber
sumber
echo *
berguna dalam praktiknya, ketika Anda telah mengacaukan sistem Anda sehingga Anda tidak dapat menjalankan program apa pun (misalnya Anda menghapuslibc.so
atauld.so
), tetapi Anda masih memiliki shell yang berjalan.echo **/*
untuk melakukan ini secara rekursif juga.kurang TAB TAB
menemukan -l switch tidak tergantung pada / bin / ls dan memiliki format sendiri, dan menampilkan informasi detail:
yang lain, detail yang menunjukkan kemungkinan, adalah
stat
sumber
Agar terlihat seperti
ls
, saya akan menggunakanfor
loop Bash :Jika itu tidak berhasil, saya akan mencoba Python
;)
:sumber
import glob; print '\n'.join(glob.glob('/home/*'))
akan bekerja dengan baik.Good ol 'vim;) (dengan penyortiran, penelusuran, dll)
sumber
Meskipun Anda mungkin ingin memasukkan parameter pembatasan apa pun yang Anda butuhkan.
sumber
lsattr ./*
getfacl ./*
akan menampilkan izin jugagrep -l '.*' ./*
awk 'FNR==1 {print FILENAME}' ./*
bekerja dengan GNU awkdebugfs /dev/sdX
ganti sdX dengan partisi apa pun yang ingin Anda lakukan ls, maka Anda dapat ls di dalam debugfslynx ./
mc
dengan asumsi Anda memiliki komandan tengah malam diinstalsumber
Mirip dengan
echo
versi, tetapi ini mencetak satu entri per baris untuk lebih mudah dibaca:atau
Secara rekursif (untuk bash 4+; shell lain memerlukan opsi lain untuk menyetelnya atau mengaktifkan globstar secara default):
sumber
**
akan muncul kembali ke semua direktori jikaglobstar
diatur. Ubah saja keprintf '%s' **
.Bagaimana dengan
dir
perintah? :)/bin/dir
sumber
Yah jika saya tidak bisa menggunakan ls dalam mode shell emacs, saya mungkin beralih ke mode eshell atau hanya dired.
sumber
Jika saya telah memulai bash shell (atau shell lain dengan selesai), saya mungkin cukup ketik '*' lalu tab.
Atau karena saya biasanya sudah mulai X, saya mungkin juga hanya melakukan 'nautilus.', Tapi oke itu untuk manusia.
Saya juga dapat mencoba / usr / bin / lsattr
Tapi di dunia nyata apa yang akan saya benar-benar lakukan jika hal seperti itu terjadi kepada saya tentu akan menjadi:
sumber
Di bash, atau shell dengan penyelesaian tab yang serupa, Anda tidak perlu menggunakan perintah nyata sama sekali:
wibble
diikuti oleh dua tab akan memberi Anda daftar file di direktori saat ini, danwibble /bin/
diikuti oleh dua tab akan menunjukkan kepada Anda apa kiri / bin. Saya pernah menemukan diri saya dalam situasi ini (sebenarnya, saya telah membunuh / bin sepenuhnya bersama dengan beberapa hal lain), dan mulai menggunakanecho *
pendekatan @STATUS_ACCESS_DENIED yang disarankan, tetapi akhirnya menemukan penyelesaian tab lebih nyaman.sumber
Cara lain dengan
tree
, tidak disebutkan di mana saja di sini, itu berjalan secara rekursif dan tidak seperti menemukan atau ls Anda tidak memiliki kesalahan (seperti:Permission denied
,Not a directory
) Anda juga mendapatkan path absolut jika anda ingin memberi makan file kexargs
atau perintah lainarti opsi:
sumber