il suffit de lister uniquement les fichiers et non récursivement dans unix

Je me demande s’il existe une option dans find ou ls pour imprimer uniquement des fichiers et non des répertoires dans le répertoire de travail.

find ./ -type f 

imprime tous les fichiers récursivement, mais ce dont j’ai besoin est juste des fichiers dans ce dossier

Merci d’avance

de l’ man find

 -maxdepth Descend at most levels (a non-negative integer) levels of directories below the command line arguments. `-maxdepth 0' means only apply the tests and actions to the command line arguments. 

find . -type f -maxdepth 1 find . -type f -maxdepth 1 devrait faire ce que vous voulez

Vous pouvez utiliser l’option maxdepth pour limiter la récursivité.

 find ./ -type f -maxdepth 1 

find inclut des fichiers de points cachés que vous ne voudrez peut-être pas.

Cette solution utilise la commande ls en tant que tableau d’entrée, appelle ls -ld sur chaque entrée canalisée vers grep pour exclure les répertoires dont la sortie est envoyée à null et, en cas de succès, fait écho à l’entrée d’origine:

 for list in `ls` ; do ls -ld $list | grep -v ^d > /dev/null && echo $list ; done ; 

Vous pouvez inverser la sortie grep et conditionnelle, les mêmes résultats:

 for list in `ls` ; do ls -ld $list | grep ^d > /dev/null || echo $list ; done ;