web-dev-qa-db-ja.com

OS Xで「ロックされた」ファイルをロック解除するコマンド

私はWindowsシステムから私のMacにたくさんの読み取り専用ファイルをコピーした。 「情報を見る」を使って各ファイルの情報を見ると、それらがロックされているのがわかります。私はいくつかのファイルをコピーするためのbashスクリプトを書いています、そして、私は「操作は許可されていません」と言うエラーを得ています。私はWindowsシステムからファイルを頻繁に取り込むので、スクリプトにこれらのファイルのロックを解除してもらいたいのです。

OSXで「ロックされた」ファイルをロック解除するための端末コマンドは何ですか?

91

ファイルをロック解除するには、次のものを使用できます。

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags = "locked"のようなファイル/フォルダのフラグを変更します
  • -R =再帰的またはすべてに対して指定されたディレクトリ内のディレクトリに従う
  • nouchg =はファイルを変更できることを意味します
  • /PATH/ =はもちろん変更したいファイルへのパスです。 ~/Sites/mysite/directory/with/locked/files/も同様に機能します。
130
Chealion

SetFile -a lと同じことをしていても、chflags nouchgを使用することもできます。

SetFile -a l file.ext

-a lは、ロックされた属性のビットを設定解除します。 SetFileをインストールするには、Xcodeの設定または developer.Apple.com/downloads からコマンドラインツールパッケージをダウンロードします。

15
John T

これは、ディレクトリ全体を検索してすべてのファイルのロックを解除したい場合に役立ちます。

ターミナルでcdディレクトリに

このコマンドはそれらのリストを見つけて出力します

$ find . -flags uchg

このコマンドはそれらをアンロックします

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

最初のコマンドを使用して、2番目のコマンドを実行した後にすべてのファイルがロック解除されていることを再確認できます。

14
Mamie McCall

ファイルに設定できるロックフラグは実際には2つあります。uchgschgです。 uchgフラグが設定されているファイルは通常のユーザーには不変ですが、システムには変更可能です。 schgフラグが設定されているファイルは誰にも不変です。両方のフラグを同時に設定できます。

ファイルに設定されているフラグを確認するには、

ls -lO FILE

それは大文字のoで、ゼロではありません。

ファイルを確実にロック解除するには、実行する必要があります

chflags nouchg,noschg FILE

両方のフラグが設定されていて、どちらか一方だけを削除しても、ロックされたままになります。

0
Mecki