2014-07-09 152 views
1

我想弄清楚如何編寫Solaris 10的shell腳本,該腳本使用if語句查找框中的所有無主文件,打印文件名和位置並將它們分配給根所有者,如果他們是無主的。Shell腳本查找無主文件

在UNIX和shell腳本中使用unix是相當新的。

請幫忙。

回答

3

像這樣的東西應該工作:

find/-nouser -exec echo chown root '{}' \; 

一旦你滿意的輸出,去掉上面,然後重新運行該行echo

解剖上面的命令:

  • find - 命令你執行
  • / - 開始在/尋找文件(所以看的所有文件)
  • -nouser - 僅查找文件,文件的數字用戶ID沒有相應的條目/etc/passwd
  • -exec - 對我們找到的所有文件運行以下命令b在前面的條件下運行
  • echo chown root '{}' \; - 爲每個匹配的文件運行的命令。 {}被替換爲完整的文件名,並且;被轉義,因此find看到它而不是shell將其看作是命令結束標記。

echo是存在的,這樣就可以驗證適當的命令將可能運行chown命令可能搞砸之前運行。

所以你運行上面的一次,確保其打印出的命令是好的,然後重新運行上面的find命令,但你刪除echo使chown的只是把打印出真正執行,而不是隻。

+0

我將如何將它變成if語句 – user3508234

+1

您可以用您試圖完成的任務更新您的問題嗎? –

+0

我編輯它。謝謝 – user3508234