說明

2016-10-02 120 views
-1

我想知道這個命令的每串背後的含義:說明

find . -type f -exec chmod 644 {} \; 
  • find . -type f意味着找到這個文件夾中的所有文件
  • -exec chmod 644執行chmod 644命令所有這些文件

爲什麼我們需要{}\;?他們有什麼用途?

+1

您是否至少有[請閱讀文檔?](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html) –

回答

2
  • . ...開始搜索在當前目錄
  • -type f ......找到類型爲 「文件」(相對於 「目錄」, 「鏈接」 等)
  • -exec ... \;的文件.. 。每個文件發現,運行命令...
  • chmod ...爲exec命令將chmod(對於文件更改訪問權限)
  • 644 ......訪問權限會更改爲(讀取,寫入)文件的所有者和(讀取)給其他人。
  • {} ......這部分將用實際文件名由find

爲什麼我們需要{}和\更換; ?他們的意思是什麼?

{}將替換爲find找到的文件名。

\;終止-exec動作find。我們需要它,因爲-exec中的命令可以與您想要的一樣長,然後在-exec之後,您可能需要其他查找操作或謂詞。所以你需要一些方法來確定一個-exec部分結束並且其他一些查找動作如下。在實踐中,這是由兩個終結符中的一個決定的,它們的含義有所不同(請閱讀查找的手冊頁),這兩個終結符分別爲;+。但是因爲;是shell中的一個元字符,所以我們需要通過轉義(或放入引號)來保護它免受shell攻擊。

+0

感謝您提供詳細和翔實的解釋! –