GNU/Linux >> Belajar Linux >  >> Linux

Daftar Semua Direktori Yang Tidak Memiliki File Dengan Nama File Yang Diberikan Di Dalamnya?

Bagaimana saya masuk ke daftar semua direktori yang tidak memiliki file dengan nama file tertentu di dalamnya? misalnya diberikan pohon ini

/
  /a
     README
     file001
     file002
  /b
     README
     file001
  /c
     file003

Saya ingin membuat daftar direktori yang tidak memiliki file bernama README , dalam hal ini adalah direktori /c . Bagaimana saya melakukannya? Saya tidak dapat memikirkan sintaks apa pun yang menggunakan mis. find .

Jawaban yang Diterima:

Dengan asumsi find implementasi seperti GNU find yang menerima {} tertanam dalam argumen ke -exec :

$ find . -type d ! -exec test -e '{}/README' ; -print

atau, tanpa penyematan bermasalah:

$ find . -type d ! -exec sh -c 'test -e "$1"/README' sh {} ; -print

Contoh

Di sini direktori 1/1 hingga 5/5 memiliki README, direktori lainnya kosong.

$ tree 
.
|-- 1
|   `-- 1
|       `-- README
|-- 10
|   `-- 10
|-- 2
|   `-- 2
|       `-- README
|-- 3
|   `-- 3
|       `-- README
|-- 4
|   `-- 4
|       `-- README
|-- 5
|   `-- 5
|       `-- README
|-- 6
|   `-- 6
|-- 7
|   `-- 7
|-- 8
|   `-- 8
`-- 9
    `-- 9

Sekarang ketika kami menjalankan versi find kami ini perintah:

$ find . -type d ! -exec test -e '{}/README' ; -print
.
./10
./10/10
./7
./7/7
./9
./9/9
./6
./6/6
./5
./8
./8/8
./4
./1
./3
./2

Referensi

  • Kecualikan direktori di find yang tidak berisi nama file tertentu?

Linux
  1. Hapus File Yang Belum Diakses Untuk Waktu Yang Diberikan Di Linux

  2. Hapus Semua File Dalam Direktori Yang Namanya Tidak Cocok Dengan Baris Dalam Daftar File?

  3. Bagaimana Mendapatkan Ls Untuk Mencantumkan Direktori Dengan Trailing Forward-slash?

  1. Temukan semua file dengan nama yang mengandung string

  2. Temukan direktori dengan semua file di dalamnya lebih tua dari X?

  3. Bagaimana cara menghapus file dengan nama aneh?

  1. Mencantumkan semua alamat email dalam file dengan grep

  2. Sebutkan Semua Perintah yang Diketahui Shell?

  3. Bagaimana cara mendaftar semua pengguna dengan root?