1 Aralık 2020 Salı

find komutu path seçeneği - glob/wildcard Kullanır

Giriş
Aranacak dizin ismini belirtir. Wildcard kullanılabilir. Başlanılan dizin çıktıya dahil edilir. Açıklaması şöyle
find includes the directories from which it starts
Örnek
Çıktıda . karakteri olduğunu görmek için şöyle yaparız
$ find .
.
./hello.txt
./hello
./hello/txt
./hello/hello2
./hello/hello2/hello3
./hello/hello2/hello3/txt
./hello/hello2/txt
Örnek
Çıktıda . yani başlangıç dizinini görmek istemiyorsak "-not -path ." veya "! -path ." şeklinde kullanırız. Şöyle yaparız
find . -maxdepth 1 -not -path . | wc -l
find $HOME -maxdepth 1 -not -path $HOME | wc -l
Örnek
Elimizde şöyle bir dizin yapısı olsun
a
├── b
│   └── e
├── c
│   └── e
└── d
Sadece c dizini içindeki e dizinlerini bulmak için şöyle yaparız
$ find . -path '*/c/e'
./a/c/e
Örnek
mp3 dosyalarını bir üst dizine taşımak için şöyle yaparız.
find . -path "*/flac/*" -name '*.mp3' -execdir mv -t ../ {} +

Hiç yorum yok:

Yorum Gönder