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 – Mengatur Proses Menjalankan Afinitas Dengan Taskset Gagal?
Memetakan Kombinasi Kunci Dengan Xmodmap?