Shellscript une Boucle sur Tous les Fichiers dans un Dossier
Je veux écrire un shell script qui passe en boucle sur tous les fichiers dans un dossier et echo "${nom de fichier}". Quelqu'un peut me pointer dans la bonne direction?
Qu'avez-vous essayé? Quelle est la partie de la
Viens de tomber sur ce -- un avertissement à toute personne utilisant comme référence -- les réponses ne gère pas les noms de fichiers avec des espaces correctement... reportez-vous à stackoverflow.com/questions/7039130/... pour une meilleure solution!!!
for
déclaration et le *
opérateur vous confondre? Pouvez-vous être plus précis sur ce que vous savez et ce que vous ne savez pas à propos de la coquille?Viens de tomber sur ce -- un avertissement à toute personne utilisant comme référence -- les réponses ne gère pas les noms de fichiers avec des espaces correctement... reportez-vous à stackoverflow.com/questions/7039130/... pour une meilleure solution!!!
OriginalL'auteur skline | 2011-12-14
Vous devez vous connecter pour publier un commentaire.
Pour les fichiers et les répertoires, pas récursive
Pour les fichiers uniquement (à l'exclusion des dossiers), pas récursive
Pour une solution récursive, voir Bennet Yee réponse.
En effet, il n'. Mais je ne suis pas sûr que la réponse ne faisant pas de exactement ce que vous voulez, c'est une bonne raison de downvote.
Vrai. Mais être généreux avec moi-même (!), on pourrait dire qu'à partir d'un *nix point de vue, un dossier est un fichier. (Éventuellement, c'est ce que je pensais quand j'ai écrit la réponse il y a 7 ans, mais qui sait...)
Ce n'nix même? Ignorant la distinction de fichiers à partir des dossiers n'est pas utile.
OriginalL'auteur Oliver Charlesworth
de manière récursive, y compris les fichiers dans des sous-répertoires?
seulement les fichiers dans ce répertoire?
find 'dir': No such file or directory
lorsque vous essayez ceci.Je suis bête, par dir que vous vouliez remplacer avec le répertoire que vous voulez. Encore, un peu déroutant!
De manière récursive pour les fichiers dans le répertoire courant, remplacer
dir
avec*
.OriginalL'auteur Bennet Yee
Pour tous les dossiers et les fichiers dans le répertoire courant
Ou, si vous voulez inclure les sous-répertoires et les fichiers seulement:
Si vous souhaitez inclure les dossiers eux-mêmes, de prendre de l'
-type f
partie.OriginalL'auteur Kevin
Si vous n'avez pas tous les fichiers, puis, au lieu de l'impression * nous pouvons le faire.
OriginalL'auteur Mad-D
Une autre solution de rechange à l'aide de
ls
etsed
:et à l'aide de
ls
etxargs
:Merci, j'ai mis à jour ma réponse. D'une certaine manière, j'ai mal compris et fait les accolades et le signe dollar partie de la solution. Aussi, je'ved une autre solution avec
xargs
etecho
, mais lesed
est encore plus concis.OriginalL'auteur jcollado
cela fonctionne également de manière récursive si vous avez des sous répertoires et fichiers à l'intérieur d'eux:
OriginalL'auteur Vijay