la gymnastique d'attributs de fichier BASH: Comment puis-je obtenir facilement un fichier avec des chemins et privilèges?

StackOverflow https://stackoverflow.com/questions/2254370

  •  20-09-2019
  •  | 
  •  

Question

Chers maîtres de la ligne de commande,

J'ai un arbre de répertoire pour lequel je veux générer un fichier qui contient deux entrées par ligne: chemin complet pour chaque fichier et les privilèges correspondants dudit fichier.

Par exemple, une ligne peut contenir:

/v1.6.0.24/lib/mylib.jar -r-xr-xr-x

La meilleure façon de générer la colonne de gauche, il semble trouver . Cependant, parce que ls ne semble pas avoir une capacité à lire soit une liste de noms ou de prendre stdin, il semble que je dois recourir à un script qui fait cela pour moi. ... Lourdeur.

Je suis sûr que je l'ai vu des gens en quelque sorte se trouver pour exécuter une commande sur chaque fichier trouvé, mais je dois être Daft ce matin que je ne peux pas sembler comprendre!

Tout le monde?

En ce qui concerne la lecture dudit fichier il pourrait y avoir des espaces dans les noms de fichiers, donc il serait vraiment bien s'il y avait un moyen d'obtenir quelques-uns des outils de ligne de commande existants pour compter les champs de droite à gauche. Par exemple, nous avons coupe . Cependant, Coupe est gauches--première et ne prendra pas un nombre négatif signifie commencer la numérotation à droite (comme me semble la syntaxe la plus évidente). ... Sans avoir à écrire un programme pour le faire, sont-il des moyens faciles?

Merci à l'avance, et merci particulière pour expliquer les exemples que vous pouvez fournir!

Merci, RT

Était-ce utile?

La solution

GNU findutils 4.2.5 +:

find -printf "$PWD"'/%p %M\n'

Autres conseils

stat -c %A file

Affichera autorisations de fichier pour le fichier.

Quelque chose comme:

find . -exec echo -ne '{}\t\t' ';' -exec stat -c %A {} ';'

Est-ce que vous donner une version mal formatée de ce que votre après.

Il est fait beaucoup plus délicat parce que vous voulez que tout aligné dans les tableaux. Vous voudrez peut-être se pencher sur la commande « colonne ». TBH Je voudrais juste détendre mes exigences de sortie un peu. sortie mise en forme en SH est une douleur dans le cul.

Il peut également être fait avec ls et awk:

ls -l -d $PWD/* | awk '{print $9 " " $1}' > my_files.txt

bash 4

shopt -s globstar
for file in /path/**
do
    stat -c "%n %A" "$file"
done
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top