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 ;