私はWindowsシステムから私のMacにたくさんの読み取り専用ファイルをコピーした。 「情報を見る」を使って各ファイルの情報を見ると、それらがロックされているのがわかります。私はいくつかのファイルをコピーするためのbashスクリプトを書いています、そして、私は「操作は許可されていません」と言うエラーを得ています。私はWindowsシステムからファイルを頻繁に取り込むので、スクリプトにこれらのファイルのロックを解除してもらいたいのです。
OSXで「ロックされた」ファイルをロック解除するための端末コマンドは何ですか?
ファイルをロック解除するには、次のものを使用できます。
chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
chflags
= "locked"のようなファイル/フォルダのフラグを変更します-R
=再帰的またはすべてに対して指定されたディレクトリ内のディレクトリに従うnouchg
=はファイルを変更できることを意味します/PATH/
=はもちろん変更したいファイルへのパスです。 ~/Sites/mysite/directory/with/locked/files/
も同様に機能します。SetFile -a l
と同じことをしていても、chflags nouchg
を使用することもできます。
SetFile -a l file.ext
-a l
は、ロックされた属性のビットを設定解除します。 SetFileをインストールするには、Xcodeの設定または developer.Apple.com/downloads からコマンドラインツールパッケージをダウンロードします。
これは、ディレクトリ全体を検索してすべてのファイルのロックを解除したい場合に役立ちます。
ターミナルでcd
ディレクトリに
このコマンドはそれらのリストを見つけて出力します。
$ find . -flags uchg
このコマンドはそれらをアンロックします。
$ find . -flags uchg -exec chflags nouchg {} \;
最初のコマンドを使用して、2番目のコマンドを実行した後にすべてのファイルがロック解除されていることを再確認できます。
ファイルに設定できるロックフラグは実際には2つあります。uchg
とschg
です。 uchg
フラグが設定されているファイルは通常のユーザーには不変ですが、システムには変更可能です。 schg
フラグが設定されているファイルは誰にも不変です。両方のフラグを同時に設定できます。
ファイルに設定されているフラグを確認するには、
ls -lO FILE
それは大文字のoで、ゼロではありません。
ファイルを確実にロック解除するには、実行する必要があります
chflags nouchg,noschg FILE
両方のフラグが設定されていて、どちらか一方だけを削除しても、ロックされたままになります。