題 用於解鎖OS X上的“已鎖定”文件的命令


我將許多只讀文件從Windows系統複製到我的Mac。使用“獲取信息”查看每個文件的信息時,我可以看到它們已鎖定。我正在編寫一個bash腳本來複製一些文件而且我收到一條錯誤,上面寫著“操作不允許”所以,首先我需要解鎖文件。由於我經常從Windows系統中提取文件,我希望我的腳本能夠解鎖這些文件。

什麼是解鎖OSX上“鎖定”文件的終端命令?


83
2017-09-14 02:15


起源




答案:


要解鎖文件,您可以使用:

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags =更改文件/文件夾上的標記,例如“已鎖定”
  • -R =遞歸或所有內容並跟踪指定目錄中的目錄
  • nouchg =表示可以更改文件
  • /PATH/ =當然是您要更改的文件的路徑。 就像是: ~/Sites/mysite/directory/with/locked/files/ 作為 好。

122
2017-09-14 02:26



看起來我找到了解決方案就像你回應一樣。我還了解到-R是遞歸的。因此,要解鎖當前目錄中的所有文件,請使用<br/> chflags nochg * <br/>並僅更改一個文件<br/> chflags nouchg onefile.txt請參閱: mehtanirav.com/2009/04/16/recursively-unlock-files-on-mac-os-x - Michael Prescott
還有另一個相關的旗幟 schg 這是系統不可變的標誌(見 developer.apple.com/library/mac/documentation/Darwin/Reference/...)清除它的命令是類似的: sudo chflags noschg PATH/TO/LOCKED/FILE - Andy Madge
使用 /bin/ls -lO /path/to/file 查看macOS flags 在文件上。注意macOS的完整路徑'ls'命令。如果您安裝了GNU Coreutils,則需要這樣做。 - Tony Barganski


你也可以使用 SetFile -a l,即使它做同樣的事情 chflags nouchg

SetFile -a l file.ext

-a l 取消設置鎖定屬性的位。您可以通過從Xcode的首選項或從中下載命令行工具包來安裝SetFile developer.apple.com/downloads


15
2017-09-14 02:30



這是在macOS Sierra上為我工作的方法,其中包含從Windows機器複製的一些文件。我用過:SetFile -a l~ / Documents / Arduino / Samples / * - callisto


如果要搜索整個目錄並解鎖所有文件,這將非常有用。

在終端 cd 到目錄

此命令查找並將顯示 打印它們的列表

$ find . -flags uchg

這個命令 解鎖他們

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

你可以使用第一個命令在運行第二個命令後仔細檢查所有文件是否已解鎖,瞧!


12
2017-09-20 03:23



雖然這有效,但對於大量文件來說它可能會非常慢,因為它會為每個文件啟動一個新進程。 - Richard Waite