2012-01-24 2 views
0

Je travaille sur un projet où je dois traiter le contenu d'un répertoire passé en argument, et j'ai besoin d'inclure des fichiers invisibles (ceux qui commencent par.). Voilà comment je suis approcherShell scripting-traitement des fichiers cachés

#!/bin/bash 

cd $1 
for file in `dir -a -d * `; 
do 
#more code blah blah 

même si j'utilise la balise -a sur la commande dir, il ignore encore les fichiers invisibles. Des idées pourquoi?

+0

Hi. Trois choses 1) Bienvenue dans Stack Overflow! 2) Lorsque vous collez du code dans une question, mettez le code en surbrillance et appuyez sur CTRL + K ou cliquez sur le bouton qui ressemble à des accolades '{}'. 3) Veuillez accepter la réponse qui répond le mieux à votre question en cochant la case à côté du compteur/décompteur. Upvoting aussi bien ne fait pas mal non plus;) Merci! – SiegeX

Répondre

4

Il suffit de faire: « »

#!/bin/bash 

shopt -s dotglob 
cd "$1" 
for file in *; do 
    # more code blah blah 
done 

De l'bash manpage

Lorsqu'un modèle est utilisé pour l'extension de nom de fichier, le caractère à le début d'un nom de fichier ou immédiatement après une barre oblique doit être correspondait explicitement, à moins que l'option shell dotglob ne soit définie.

+0

+1 - Il serait également bon d'expliquer pourquoi sa tentative est mauvaise (division des mots) – jordanm

Questions connexes