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 .

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)/.*'

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\/*'
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.