Czy można użyć find
polecenia w taki sposób, aby nie powracało do podkatalogów? Na przykład,
DirsRoot
|-->SubDir1
| |-OtherFile1
|-->SubDir2
| |-OtherFile2
|-File1
|-File2
A wynik czegoś takiego find DirsRoot --donotrecuourse -type f
będzie tylko File1, File2
?
-maxdepth 1
?1
jest prawdopodobnie tym, czego chce.-maxdepth 0
nie pokazuje żadnego pliku, ale-maxdepth 1
działa zgodnie z przeznaczeniem, a także wyświetla ukryte pliki.*
infind DirsRoot/* -maxdepth 0 -type f
. Jeśli to pominiesz, nie wyświetli żadnych plików.Wierzę, że szukasz
-maxdepth 1
.źródło
-maxdepth 1
?Jeśli szukasz rozwiązania zgodnego z POSIX:
cd DirsRoot && find . -type f -print -o -name . -o -prune
-maxdepth nie jest opcją zgodną z POSIX.
źródło
find DirsRoot/* -type f -prune
?-prune
btw) Odpowiedź brzmi nie, nie może. Aby w pełni zrozumieć DLACZEGO nie można tego uprościć, po prostu wyślijset -x
polecenie przed jego wysłaniem,find DirsRoot/* -type f -o -prune
a natychmiast zobaczysz to sam. Główną przyczyną są ograniczenia ekspansji powłokiDirsRoot/*
.find . -name . -o -prune