GNU/Linux >> Belajar Linux >  >> Linux

Kecualikan Direktori Di Temukan?

Bagaimana saya bisa menemukan setiap file dan direktori yang cocok dengan suatu pola, kecuali satu direktori menggunakan find ?

Katakanlah saya memiliki struktur file berikut;

.
  foo-exclude-me/
    foo.txt
  foo-exclude-me-not/
    foo.txt
  bar/
    foo.txt
    foobar/
      bar.txt
      foofoo.txt

bagaimana saya mendapatkan output berikut menggunakan find :

./bar/foo.txt
./bar/foobar
./bar/foobar/foofoo.txt
./foo-exclude-me-not
./foo-exclude-me-not/foo.txt

Saya telah mencoba menggunakan kedua perintah berikut:

find . -name 'foo-exclude-me' -prune -o -name 'foo*'
find . -name 'foo*' ! -path './foo-exclude-me/*'

tapi keduanya mengembalikan ini:

./bar/foo.txt
./bar/foobar
./bar/foobar/foofoo.txt
./foo-exclude-me # << this should be excluded
./foo-exclude-me-not
./foo-exclude-me-not/foo.txt

Bagaimana saya bisa mengecualikan foo-exclude-me . dengan benar direktori?

Jawaban yang Diterima:

find . -name 'foo-exclude-me' -prune -o -name 'foo*' -print

Tanpa -print , tindakan default implisit berlaku untuk setiap kecocokan, bahkan yang dipangkas. -print explicit eksplisit hanya berlaku di bawah kondisi yang ditentukan, yaitu -name 'foo*' hanya di cabang lain -name 'foo-exclude-me' .

Secara umum, gunakan -print yang eksplisit setiap kali Anda melakukan sesuatu yang lebih kompleks daripada gabungan predikat.

Upaya kedua Anda dengan ! -path './foo-exclude-me/*' tidak berfungsi karena ./foo-exclude-me tidak cocok dengan ./foo-exclude-me/* (tidak ada / trail yang tertinggal ). Menambahkan ! -path ./foo-exclude-me akan berhasil.


Linux
  1. Hapus File Dan Direktori Dengan Nama Mereka. Tidak ada berkas atau direktori seperti itu?

  2. File Cat Dengan Direktori?

  3. Temukan file lalu cd ke direktori itu di Linux

  1. Temukan dan ganti nama direktori

  2. Bagaimana saya bisa mengecualikan direktori dari perintah ls

  3. Bagaimana menemukan direktori Hadoop hdfs di sistem saya?

  1. grep rekursif:mengecualikan direktori tertentu

  2. Kecualikan file tersembunyi saat mencari dengan Unix/Linux temukan?

  3. Menemukan direktori di Terminal Linux