cari file tanpa ekstensi


43

Katakanlah saya punya:

foo.txt
bar
baz.ooo

Jika saya gunakan ls -1 !(*.*)maka saya akan mendapatkan hanya barpada output. Hebat, sekarang saya ingin memiliki hasil yang sama dengan menemukan - beberapa find -regexyang akan melakukan pekerjaan.

CATATAN:

find -name !(*.*)bukan jawabannya karena !(*.*)masih glob Bash yang TIDAK bisa saya gunakan.

Jawaban:


64

Anda bisa menggunakan: find . -type f ! -name "*.*" the !meniadakan ekspresi berikut, di sini nama file yang berisi '.'

Anda juga dapat menggunakan -maxdepthopsi untuk mengurangi kedalaman pencarian.


1
Saya paling suka jawaban Anda karena saya memiliki beberapa kendala lain untuk nama file dan Anda adalah bukti peluru.
pawel7318

Ini juga bagus ketika ls -1 !(*.*)tidak akan berhasil karena !memberi "Acara tidak ditemukan."
Noumenon

2
@Noumenon lakukan set +Huntuk menyelesaikannya
pawel7318

1
Jika Anda memperlakukan .gitignoresebagai file tanpa ekstensi (seperti Node's path.extname ()), gunakan ! -name "?*.*"sebagai ganti! -name "*.*"
Johnny Wong
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.