web-dev-qa-db-fra.com

Commande pour déverrouiller des fichiers "verrouillés" sous OS X

J'ai copié beaucoup de fichiers en lecture seule d'un système Windows sur mon Mac. Lors de l'affichage des informations pour chaque fichier à l'aide de "Obtenir des informations", je peux voir qu'ils sont verrouillés. J'écris un script bash pour copier certains fichiers et j'obtiens une erreur disant "Opération non autorisée". Alors, je dois d'abord déverrouiller les fichiers. Comme je vais souvent extraire des fichiers du système Windows, je souhaite que mon script les déverrouille.

Quelle est la commande du terminal pour déverrouiller les fichiers "verrouillés" sur OSX?

90
Michael Prescott

Pour déverrouiller des fichiers, vous pouvez utiliser:

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags = changer les indicateurs 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/ = est bien sûr le chemin des fichiers que vous souhaitez modifier. Quelque chose comme: ~/Sites/mysite/directory/with/locked/files/ fonctionne également.
130
Chealion

Vous pouvez également utiliser SetFile -a l, même s'il a la même fonction 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 package Outils de ligne de commande à partir des préférences de Xcode ou de developer.Apple.com/downloads .

15
John T

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

Dans le terminal cd au répertoire

Cette commande trouve et va en imprimer une liste .

$ 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 l'exécution de la deuxième commande, le tour est joué!

14
Mamie McCall