Text-Processing

從 ls -laLR 解析文件

  • February 22, 2014
ls -laLR /home/tools > all_site1.txt

我需要/home/tools. 使用此命令,我將所有內容都放入此文件中。我現在需要的是一個解決方案,如何從這個文件中解析all_sites1.txt只有目錄所有者或文件所有者是 root 的行。

我試過這個:

awk '/root/{print $0}' all_sites1.txt

但我得到了所有發生的地方root。我只需要所有者是 root 以及要列印什麼文件和/或目錄的條目。

如果您要保存文件夾/文件的狀態,getfacl這是一個更好的命令。您可以執行以下操作:

getfacl -LR /home/tools >all_site1.txt

不過要注意的一件事是,該-L選項的行為與ls. 它只遵循指向目錄而不是文件的符號連結。

您可以像這樣列印 root 擁有的文件的輸出(前提是所有路徑都不包含換行符):

awk '$2=="file:" && file_line=$0 {}
 $2=="owner:" && $3=="root" { print substr(file_line,9) }' \
 all_sites1.txt

引用自:https://unix.stackexchange.com/questions/116402