Miré otras preguntas similares, pero no encontré una que me permitiera comprender el concepto y hacerlo aplicable a mi situación en función de mi tiempo limitado. Simplemente estoy ejecutando el comando find para encontrar ciertos archivos, pero algunos archivos en subdirectorios tienen el mismo nombre que quiero ignorar. Gracias por cualquier ayuda. A continuación se muestra el comando que estoy usando:
Los archivos / patrones en los que estoy interesado: / dev / abc-scanner, / dev / abc-cash ...
El comando:
find /dev/ -name 'abc-*'
Lo que se devuelve:
/dev/abc-scanner
/dev/abc-cash
...
...
...
/dev/.udev/names/abc-scanner
/dev/.udev/names/abc-cash
Quiero ignorar los últimos archivos: /dev/.udev / ...

Respuestas:
Si solo desea limitar la búsqueda al primer nivel, puede hacer lo siguiente:
... o si particularmente desea excluir el
.udevdirectorio, puede hacer:fuente
xargs, así que algo así como:find /dev -maxdepth 1 -name 'abc-*' | xargs ls -lpero si hay alguna posibilidad de que tengan espacios en blanco en los nombres, deberías hacerlofind /dev -maxdepth 1 -name 'abc-*' -print0 | xargs -0 ls -lls -l /dev/abc-*for x in /dev/abc-*; do readlink -f $x; donels -l /dev/abc-* /dev/*/abc-* | fgrep -v /dev/.udev... excepto que al menos en mi Linux/dev/*/*no incluye archivos, por/dev/.udev/*lo que puede omitir elfgrep -v.¿Hay alguna razón en particular que necesites usar
find? Simplemente puede usarlspara buscar archivos que coincidan con un patrón en un directorio.Si necesita usarlo
find, puede usar el-maxdepth 1interruptor para aplicar solo al directorio especificado.fuente
-maxdepth 1lugar de-maxdepth 0ls. Puede encontrar los mismos archivos conechoo conwclo que tiene, porque el shell expande el comodín por usted. Entonces,for file in /dev/abc-*; do something with each "$file"; donepodría ser lo que el OP realmente está buscando.findno lo tiene, por ejemplo.lses superfluo.for f in abc*; ...es todo lo que necesitas.Esto puede hacer lo que quieras:
fuente
No funciona para mi No devuelve nada. Si solo hago '.' me da todos los archivos en el directorio debajo del que estoy trabajando.
No devuelva nada con '.' en su lugar obtengo una lista de todos los archivos 'grandes' en mi directorio, así como el directorio raíz / donde guardo los archivos antiguos.
Continuo. Esto funciona.
Aparentemente
/devsignifica directorio de interés. Pero./es necesario, no solo.. La necesidad de esto/no era obvia incluso después de que descubrí qué/devsignificaba más o menos.No pude responder como un comentario porque no tengo 'reputación'.
fuente