Bagaimana cara mendapatkan daftar file yang tidak cocok dengan pola di bash?

3

Saya punya file dengan pola karakter joker:

./include/*

./src/*

dll.

Dari direktori saat ini saya ingin secara rekursif mendapatkan daftar file itu tidak cocok dengan pola-pola ini .

Tamás Szelei
sumber

Jawaban:

6
find . -type f \! \( -path '*/include/*' -o -path '*/src/*' \)

Kerusakan:

  • \! meniadakan grup
  • \( ... \) adalah cara melakukan kelompok kondisi untuk find
  • -o Kondisi OR
  • Segala sesuatu yang lain harus jelas.

Jika Anda memiliki versi cukup baru find, Anda dapat meningkatkannya dengan:

find . -type f -regextype posix-egrep -regex \! -path '.*/(include|src)/.*'
Brian Vandenberg
sumber
Bersantai, kita mungkin dalam zona waktu yang berbeda ... Terima kasih atas jawabannya. :)
Tamás Szelei
np, baru saja memberikan pengingat ramah =)
Brian Vandenberg
Kawan Respons ini luar biasa!
macetw
0

Pendekatan pertama, tetapi tidak menggunakan daftar file, orang lain merasa bebas untuk memperbaiki itu:

find . -type f -print | grep -v '.\/src\/*'
slhck
sumber