J'essaie de modifier la propriété et les autorisations de certains fichiers (et répertoires) du répertoire actuel. J'ai essayé ceci:
chown username:groupname .
... s'attendre à ce que cela affecte tous les fichiers du répertoire actuel, mais uniquement le répertoire dans lequel je me trouve (ce qui est le contraire de ce que je veux faire). Je veux le changer sur tous les fichiers sans affecter le répertoire actuel dans lequel je me trouve.
Comment puis-je chown et chmod tous les fichiers du répertoire courant?
man chown
etman chmod
répondez facilement à votre question.chmod
. Il est intégré à la coquille. Aussi, la lecture de la documentation sur Globbing vous aspire (j'ai passé beaucoup de temps à comprendre toutes les fonctionnalités de zsh).chown -R user:group .
Réponses:
Vous souhaitez utiliser
chown username:groupname *
et laisser le shell développer*
le contenu du répertoire actuel. Cela modifiera les autorisations pour tous les fichiers / dossiers du répertoire actuel, mais pas le contenu des dossiers.Vous pouvez également le faire
chown -R username:groupname .
, ce qui modifierait les autorisations sur le répertoire en cours, puis rétablira l'intérieur de celui-ci et tous les sous-dossiers pour modifier les autorisations.chown -R username:groupname *
modifiera les autorisations sur tous les fichiers et dossiers de manière récursive, tout en laissant le répertoire actuel lui-même. Ce style et le premier style sont ceux que je me trouve le plus souvent.la source
chown -R username:groupname .
enchown -R username:groupname /
. Faire une tâche de 2 secondes un cauchemar de 2 jours.-v
toutes mes commandes récursives, mais trop paresseuxchown -R username:groupname directoryname
Je pense que tu veux ça:
chown username:groupname *
Si vous souhaitez également modifier de manière récursive les sous-répertoires, vous devez utiliser le commutateur
-R
(-r
obsolète):chown -R username:groupname *
la source
chown
est super si vous êtes un superutilisateur. J'ai eu un problème où quelqu'un d'autre avait courumake
dans mon répertoire, et possédais maintenant des fichiers que je ne pouvais pas modifier. Voici ma solution de contournement qui traite les fichiers et les répertoires, même si elle laisse les répertoires traîner avec un suffixe.mkmeowner
si elle ne peut pas les supprimer.Exemples:
mkmeownerone
doit être sur votre chemin.mkmeowner:
mkmeownerone:
la source
mkmeownerone
dans la recherche PATH.mkmeowner
va exploser si cela n'est pas fait. (3) Veuillez apprendre comment (c.-à-d. Quand et où) utiliser des guillemets dans des commandes shell et des scripts. Dire${f}
n'est pas une alternative utile; voir ça . … (Suite)expr
est désuet. Il est plus efficace de faire une simple correspondance de chaîne dans le shell; bash prend également en charge la correspondance d'expression régulière. D'ailleurs, vous pourriez faire le test du nom de fichier dansfind.
(6). Votreexpr match
commande teste si${f}
se termine parmkmeowner
, et non si elle se termine par.mkmeowner
. Par conséquent, le script ne fonctionnera pas sur lui-même. … (Suite)dirorfile
est difficile à lire et à comprendre (comparé àdir_or_file
), et quand j'ai vumkmeowner
, ma première pensée était un chat (mk
+meow
+ner
).