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?
macos
command-line
file-attributes
Michael Prescott
la source
la source
schg
qui est l'indicateur immuable du système (voir developer.apple.com/library/mac/documentation/Darwin/Reference/… ). La commande pour l'effacer est similaire:sudo chflags noschg PATH/TO/LOCKED/FILE
/bin/ls -lO /path/to/file
pour afficher le macOSflags
sur les fichiers. Notez le chemin complet de lals
commande macOS ' '. Cela est nécessaire si GNU Coreutils est installé.Vous pouvez également utiliser
SetFile -a l
, même s'il fait la même chose quechflags nouchg
:-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 .la source
Ceci est utile si vous souhaitez rechercher un répertoire entier et déverrouiller tous les fichiers.
Dans le terminal
cd
vers le répertoireCette commande trouve et en imprimera une liste .
Cette commande les déverrouille .
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é!
la source
Il existe en réalité deux indicateurs de verrouillage pouvant être définis sur un fichier:
uchg
etschg
. Un fichier dont l'uchg
indicateur est défini est immuable pour les utilisateurs normaux, mais il est modifiable par le système. Un fichier dont l'schg
indicateur est défini est immuable par quiconque. Les deux drapeaux peuvent être définis en même temps.Pour voir quels indicateurs sont définis sur un fichier, utilisez
C’est une lettre majuscule, pas zéro.
Pour déverrouiller définitivement un fichier, vous devez exécuter
comme si les deux drapeaux étaient définis et que vous n'en supprimiez qu'un, celui-ci serait toujours verrouillé.
la source