GNU/Linux >> Belajar Linux >  >> Linux

Temukan:Prune Tidak Mengabaikan Jalur yang Ditentukan?

Saya perlu mengecualikan .git dari find . saya Cari. Untuk mencapai itu, saya menggunakan -path ./.git -prune beralih:

$ find . -path ./.git -prune -o ( -type f -o -type l -o -type d ) | grep '.git'
./.git

Namun, meskipun ini melewatkan isi direktori .git, ini mencantumkan direktori itu sendiri. Ini berfungsi ketika saya menambahkan -path ./.git -prune -o -print -a

find . -path ./.git -prune -o -print -a ( -type f -o -type l -o -type d ) | grep '.git'

Mengapa ini perlu. Saya pikir kedua perintah harus memiliki output yang sama. Sintaks kedua cukup jelek.

Jawaban yang Diterima:

man halaman untuk find memberikan:

-prune True; if the file is a directory, do not  descend  into  it.  If
      -depth  is  given,  false;  no  effect.  Because -delete implies
      -depth, you cannot usefully use -prune and -delete together.

Jadi pada contoh pertama bukan -path ./.git -prune tidak benar dan oleh karena itu tindakan default (-print ) tidak akan dipanggil, maka baris akan dicetak.


Linux
  1. Vsftpd Tidak Mencantumkan Konten Direktori?

  2. Mengapa `keluar &` Tidak Berfungsi?

  3. Linux – Ldd Tidak Menemukan Path, Bagaimana Cara Menambahkannya?

  1. Bagaimana menemukan jalur instal git di Mac atau Linux?

  2. Mengapa regex ini tidak berfungsi di linux?

  3. Pengulangan otomatis tidak berfungsi

  1. kesalahan:src refspec main tidak cocok dengan [GIT] mana pun

  2. Perintah Tidak Ditemukan di Bash Tetap

  3. Mengapa find -mtime tidak berfungsi seperti yang diharapkan pada file dengan zona waktu berbeda?