我想显示文件的 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
答案1
您可以编写一个小脚本来为您完成此操作(这很丑陋,但有效):
#!/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
答案2
因此,编写一个 shell 脚本将数据收集到变量中。将数据放入变量后,您可以重新格式化并按照您想要的方式打印它们。