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?
Bisakah Driver Nouveau Xorg Digunakan Untuk Workstation Multihead?
Linux – Simpan Tab Nemo di Linux Mint?