Apakah mungkin untuk menggunakan find
perintah dengan cara tertentu sehingga tidak akan muncul kembali ke dalam sub-direktori? Sebagai contoh,
DirsRoot
|-->SubDir1
| |-OtherFile1
|-->SubDir2
| |-OtherFile2
|-File1
|-File2
Dan hasil dari sesuatu seperti find DirsRoot --donotrecuourse -type f
hanya akan terjadi File1, File2
?
-maxdepth 1
?1
mungkin apa yang dia inginkan.-maxdepth 0
tidak menampilkan file apa pun tetapi-maxdepth 1
berfungsi sebagaimana mestinya, dengan file tersembunyi juga ditampilkan.*
difind DirsRoot/* -maxdepth 0 -type f
. Jika Anda membiarkannya, itu tidak akan menampilkan file apa pun.Saya yakin Anda sedang mencari
-maxdepth 1
.sumber
-maxdepth 1
?Jika Anda mencari solusi yang sesuai dengan POSIX:
cd DirsRoot && find . -type f -print -o -name . -o -prune
-maxdepth bukan opsi yang sesuai dengan POSIX.
sumber
find DirsRoot/* -type f -prune
?-prune
btw) Jawabannya adalah tidak, tidak bisa. Untuk memahami sepenuhnya MENGAPA itu tidak dapat disederhanakan, cukup kirimkanset -x
perintah sebelum memancarkanfind DirsRoot/* -type f -o -prune
dan Anda akan segera melihatnya sendiri. Akar penyebabnya adalah keterbatasan ekspansiDirsRoot/*
ekspresi shell .find . -name . -o -prune