Функция system()
в awk
запускает команду и возвращает ее статус. Вы получили 0
, потому что команда выполнена успешно. Вывод date +'%s'
печатался отдельно.
Чтобы получить вывод внешней команды, вы должны использовать getline():
$ echo foo bar baz | awk '{"date +%s" | getline d; printf "%s %s\n", d, $0}'
1491147643 foo bar baz
Нет ничего общего с OFS
, потому что по умолчанию это пробел.
С помощью gawk
или mawk
вы также можете сделать:
echo foo bar baz | gawk '{printf "%s %s\n", systime(), $0}'
Функция systime()
возвращает количество секунд с начала эпохи, не считая високосных секунд
IOW, вы можете сделать это в одиночку с помощью date
:
date +'%s foo bar baz'
В вашем каталоге /media/disk
отсутствует бит выполнения для группы и «других».
Это означает (ИМХО несколько запутанным образом ), что вы можете успешно прочитать из каталога (, поскольку бит чтения установлен )и перечислите его содержимое, а вы не можете воздействовать на него или войти в него (через cd
), и это включает в себя перечисление его дочернего содержимого, пока маска разрешения 744
.
Если вы хотите получить доступ к определенному подкаталогу (-ies)без предоставления доступа ко всему дереву, тогда достаточно удалить доступ на чтение, но установить бит выполнения:
$ su
# mkdir -p /tmp/parent/child
# chmod 711 /tmp/parent/
# chmod 755 /tmp/parent/child/
# touch /tmp/parent/child/test
# exit
$ ls /tmp/parent/
ls: cannot open directory '/tmp/parent/': Permission denied
$ cd /tmp/parent/
$ pwd
/tmp/parent
$ ls
ls: cannot open directory '.': Permission denied
$ ls child/
test
Глупость во многом основана -на мнении, но учтите, что требование прав «выполнения» для всех каталогов на пути означает, что доступ ко всему поддереву может быть запрещен путем отказа в доступе к корневому каталогу этого поддерева. «Выполнение» каталога не имеет особого смысла, поэтому бит x
может быть лучше назван «доступом» в случае каталогов.
Другими словами, установив разрешения /home/$USER
на 700
(, т.е. rwx------
), мы можем быть уверены, что ни один другой пользователь не получит доступ к файлам $USER
, даже если они или какая-либо программа, которую они используют, случайно создают файлы. с более либеральными разрешениями в своем домашнем каталоге. Есть только одно место для проверки, а не каждый файл.