Saya mencoba mendapatkan daftar file yang dapat saya salurkan ke wc -l
untuk mendapatkan jumlah kata semuanya (tidak menggunakan wc
secara langsung sehingga saya dapat memfilter daftar file sebelum menggunakan perintah).
Struktur direktori saya kira-kira seperti ini:
- folder
- file.php
- file2.html
- file3.php
- folder1
- folder2a
- folder3b
- folder4
- file.php
- file2.php
Saya ingin mengecualikan direktori tertentu di find
saya, sebagian besar perpustakaan dan hal-hal lain yang tidak saya buat. Saya bisa melakukannya secara manual seperti:
find /var/www/html/ -type f -not -path "/var/www/html/folder/folder1" -not -path "/var/www/html/folder/folder2a"
dll.
Namun, rasanya menjengkelkan karena harus menentukan semua folder secara eksplisit, dan daftarnya juga bisa berubah kapan saja. Saya sudah mencoba menggunakan /*
dan /**
untuk mencocokkan pola tetapi tidak berhasil juga. Apakah ada cara untuk salah satu dari not ini dalam perintah find saya sehingga saya dapat mengecualikan semua subdirektori dari direktori tertentu, namun tidak mengecualikan direktori itu sendiri? (termasuk file-filenya , tetapi tidak ada subdirektorinya)?
Berikut tebakan intuitifnya:
find /var/www/html -not -path '/var/www/html/someotherbadfolder' -type f \( ! -path "/var/www/html/folder" -maxdepth 1 \)
Tapi bahkan find
mengeluh tentang ini:
find: warning: you have specified the -maxdepth option after a non-option argument -not, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
Jadi sepertinya maxdepth
tidak mampu digabungkan dalam suatu operasi.
Ada banyak Tanya Jawab tentang mengecualikan subdirektori tertentu, tetapi tidak secara umum subdirektori apa pun dalam subdirektori tertentu.
Saya bisa membuatnya berfungsi dalam satu direktori dengan -maxdepth 1
, tetapi masalahnya adalah ini adalah bagian pengecualian dari perintah yang lebih besar, dan itu tidak berfungsi setelah saya menjalankan perintah lengkap. Secara potensial, saya mungkin perlu mengecualikan subdirektori tertentu serta subdirektori apa pun di beberapa subdirektori spesifik lainnya.