2009-09-14 02:15:23 +0000 2009-09-14 02:15:23 +0000
102
102

Commande de déverrouillage des fichiers "verrouillés" sous OS X

J'ai copié beaucoup de fichiers en lecture seule d'un système Windows vers mon Mac. Lorsque je consulte les informations de chaque fichier en utilisant “Get Info”, je vois qu'ils sont verrouillés. J'écris un script de bash pour copier certains fichiers et j'obtiens une erreur qui dit “Opération non autorisée”. Comme je vais souvent extraire des fichiers du système Windows, je veux que mon script déverrouille ces fichiers.

Quelle est la commande du terminal pour déverrouiller les fichiers “verrouillés” sous OSX ?

Réponses (4)

144
144
144
2009-09-14 02:26:55 +0000

Pour déverrouiller les fichiers que vous pouvez utiliser :

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags = modifier les drapeaux sur les fichiers/dossiers tels que “verrouillé”
  • -R = récursif ou pour tout et suivre les répertoires dans le répertoire spécifié
  • nouchg = signifie que le fichier peut être modifié
  • /PATH/ = bien sûr, c'est le chemin d'accès aux fichiers que vous voulez modifier. Quelque chose comme : ~/Sites/mysite/directory/with/locked/files/ fonctionne également.
15
15
15
2013-09-20 03:23:10 +0000

Ceci est utile si vous souhaitez rechercher dans un répertoire entier et déverrouiller tous les fichiers.

Dans le terminal cd au répertoire

Cette commande trouve et imprime une liste de ceux-ci.

$ find . -flags uchg

Cette commande les déverrouille.

$ find . -flags uchg -exec chflags nouchg {} \;

Vous pouvez utiliser la première commande pour vérifier que tous les fichiers sont déverrouillés après avoir exécuté la deuxième commande, voilà !

15
15
15
2009-09-14 02:30:00 +0000

Vous pouvez également utiliser SetFile -a l, même si cela fait la même chose que chflags nouchg :

SetFile -a l file.ext

-a l désactive le bit pour l'attribut verrouillé. Vous pouvez installer SetFile en téléchargeant le paquet Command Line Tools dans les préférences de Xcode ou sur developer.apple.com/downloads .

2
2
2
2019-05-15 08:32:33 +0000

Il y a en fait deux drapeaux de verrouillage qui peuvent être placés sur un fichier : uchg et schg. Un fichier qui a le drapeau uchg est immuable par les utilisateurs normaux mais il est mutable par le système. Un fichier qui a le drapeau schg est immuable par n'importe qui. Les deux drapeaux peuvent être activés en même temps.

Pour voir quels drapeaux sont activés sur un fichier, utilisez

ls -lO FILE

C'est un o majuscule, pas un zéro.

Pour déverrouiller définitivement un fichier, vous devez exécuter

chflags nouchg,noschg FILE

comme si les deux drapeaux étaient activés et que vous n'en supprimiez qu'un seul, il sera toujours verrouillé.