Linux

獲取文件的 ctime、atime、mtime 和擴展屬性

  • August 28, 2015

我想顯示文件的 ctime、mtime 和 atime 以及它是否具有擴展屬性。有 2 個命令可以做到這一點,但我無法將它們組合成一個命令來提供單行輸出。

find /tmp -maxdepth 1 -printf "%a _ %c _ %t _ %P\n"

給出與此類似的輸出:

Thu Aug 27 09:51:11 2015 _ Thu Aug 27 09:48:40 2015 _ Thu Aug 27 09:48:40 2015 _ tempfile.tmp

ls -l /tmp

給出與此類似的輸出:

-rw-rw----+ 1 root root       5 Aug 27 04:39 tempfile.tmp

我只對 ls 輸出中權限後的“+”符號感興趣。

理想情況下,我希望輸出與此類似:

+ Thu Aug 27 09:51:11 2015 _ Thu Aug 27 09:48:40 2015 _ Thu Aug 27 09:48:40 2015 _ tempfile.tmp
 Thu Aug 27 09:51:11 2015 _ Thu Aug 27 09:48:40 2015 _ Thu Aug 27 09:48:40 2015 _ anothertempfile.tmp

您可以編寫一個小腳本來為您完成(這很醜但有效):

#!/bin/bash
for f in *; do
 flag="x"
 attr=$(getfattr $f)
   if [ "$attr" = "" ]
     then flag=" "
   fi
 find -name $f -printf "$flag %a _ %c _ %t _ %P\n"
done

因此,編寫一個 shell 腳本將您的數據收集到變數中。在變數中獲得數據後,您可以重新格式化並完全按照您想要的方式列印它們。

引用自:https://serverfault.com/questions/717205