dan itu masih membuat Anda dengan './' diawali dengan setiap nama file. Itu tidak benar-benar masalah, tapi saya pikir itu agak jelek. Aku pergi dengan:
ls -p | grep -v '/$'
Dan itu akan memberi Anda daftar yang terlihat sama, dan Anda dapat menambahkan lsargumen tambahan juga. Tambahkan a --color=alwaysdan Anda akan mendapatkan dircolors Anda kembali, atau -auntuk melihat file yang tersembunyi.
Saya suka jawaban Alexander karena dia sebenarnya tergantung pada karakteristik sistem file dari file yang bersangkutan sehingga tidak akan pernah dibodohi. Jawaban saya akan tertipu oleh file yang memiliki '/' sebagai karakter terakhir dalam nama itu. Tapi sepertinya itu meminta masalah.
Jawaban ini sudah diberikan lebih dari setahun sebelumnya oleh macet, (membuat kebisingan visual ini.)
Alexx Roche
2
Solusi "find" di atas kehilangan beberapa kemampuan ls - misalnya: daftar hanya file, diurutkan dalam waktu modifikasi yang menurun.
Jawaban "ls -p | grep" tidak secara elegan menangani elemen ls lainnya seperti -R jika diinginkan
Jawaban berikut, sementara lebih verbose, menurut saya mencerminkan paling benar ls perilaku dan paling fleksibilitas untuk memilih "hanya file"
ls -t . | while read line; do
if [ -f $line ]; then
echo $line
fi
done
Cukup ganti sakelar ls seperti yang diinginkan dan hasilnya akan dikembalikan dengan file saja. Jika tautan dan item lain juga diperlukan, pengerjaan ulang kecil perlu dilakukan untuk pengujian untuk dimasukkan.
Dengan ini Anda masih dapat menggunakan opsi lain yang lsbiasanya diperlukan. Atau ... hapus -vhanya untuk daftar direktori. Atau ... ganti direktori dengan jenis file lain yang filememahami dan melaporkan, seperti ASCII, kosong, ELF, dan sebagainya.
Ini tidak berfungsi jika salah satu nama file yang dicantumkan berisi spasi.
Psychonaut
ls -t .|while read f;do [ -f "$f" ]&& echo $f;donesekitar 3x lebih cepat dalam pengujian saya
Alexx Roche
0
Saya berada di sistem di mana findbiner tidak mendukung -notdan saya akhirnya menggunakan:
ls|while read f;do [ -f "$f" ]&& echo $f;done
Keuntungan: Tidak bergantung pada apa pun selain sh ls echo
Kompatibel dengan bash dan dash
Dapat diubah agar sesuai dengan hal lain, (seperti direktori) dengan mengubah Lebih -f
cepat dari beberapa jawaban dan menggunakan lebih sedikit RAM dan CPU
ls .
tanpa direktori - dan ini dia.-ls
atau-exec ls -l {} \;
membuatnya sepertils -l
tanpa direktori.Untuk mendapatkannya persis sama dengan
ls .
Anda tidak perlu menampilkan direktori tersembunyi.find . -maxdepth 1 -not -type d -and -not -name '.*'
dan itu masih membuat Anda dengan './' diawali dengan setiap nama file. Itu tidak benar-benar masalah, tapi saya pikir itu agak jelek. Aku pergi dengan:
ls -p | grep -v '/$'
Dan itu akan memberi Anda daftar yang terlihat sama, dan Anda dapat menambahkan
ls
argumen tambahan juga. Tambahkan a--color=always
dan Anda akan mendapatkan dircolors Anda kembali, atau-a
untuk melihat file yang tersembunyi.Saya suka jawaban Alexander karena dia sebenarnya tergantung pada karakteristik sistem file dari file yang bersangkutan sehingga tidak akan pernah dibodohi. Jawaban saya akan tertipu oleh file yang memiliki '/' sebagai karakter terakhir dalam nama itu. Tapi sepertinya itu meminta masalah.
sumber
coba ini:
atau ini:
sumber
Meskipun ini adalah posting lama, tapi saya pikir ini mungkin membantu ..
$ ls-l | grep -v ^ d
Ini akan mendaftar semua file termasuk symlinks, karakter dan blokir file.
sumber
Solusi "find" di atas kehilangan beberapa kemampuan ls - misalnya: daftar hanya file, diurutkan dalam waktu modifikasi yang menurun.
Jawaban "ls -p | grep" tidak secara elegan menangani elemen ls lainnya seperti -R jika diinginkan
Jawaban berikut, sementara lebih verbose, menurut saya mencerminkan paling benar ls perilaku dan paling fleksibilitas untuk memilih "hanya file"
Cukup ganti sakelar ls seperti yang diinginkan dan hasilnya akan dikembalikan dengan file saja. Jika tautan dan item lain juga diperlukan, pengerjaan ulang kecil perlu dilakukan untuk pengujian untuk dimasukkan.
sumber
Dengan ini Anda masih dapat menggunakan opsi lain yang
ls
biasanya diperlukan. Atau ... hapus-v
hanya untuk daftar direktori. Atau ... ganti direktori dengan jenis file lain yangfile
memahami dan melaporkan, seperti ASCII, kosong, ELF, dan sebagainya.sumber
ls -t .|while read f;do [ -f "$f" ]&& echo $f;done
sekitar 3x lebih cepat dalam pengujian sayaSaya berada di sistem di mana
find
biner tidak mendukung-not
dan saya akhirnya menggunakan:Keuntungan: Tidak bergantung pada apa pun selain
sh ls echo
Kompatibel dengan bash dan dash
Dapat diubah agar sesuai dengan hal lain, (seperti direktori) dengan mengubah Lebih
-f
cepat dari beberapa jawaban dan menggunakan lebih sedikit RAM dan CPU
sumber