Назад | Перейти на главную страницу

Получить ctime, atime, mtime и расширенные атрибуты файла

Я хотел бы отобразить ctime, mtime и atime файла вместе с тем, имеет ли он расширенные атрибуты или нет. Есть две команды, которые могут это сделать, но мне не удалось объединить их в одну команду, чтобы получить одну строку вывода.

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