find. -maxdepth 1 -type f | awk 'END {printf("%d %s%s\n", NR, "file", (NR > 1) ? "s" : "")}'
Пояснение:
find. -maxdepth 1 -type f
-искать все файлы в текущем каталоге. awk 'END {printf("%d %s%s\n", NR, "file", (NR > 1) ? "s" : "")}'
NR
= количество строк, полученных от программы find
, равное количеству файлов. (NR > 1) ? "s" : "")
-если количество строк (файлов )больше 1, добавить окончание s
к слову file
. В системах Linux доступ к Docker обычно закрыт группой docker
, которая имеет доступ на запись к сокетам Docker:
% stat /var/run/docker.sock
File: /var/run/docker.sock
Size: 0 Blocks: 0 IO Block: 4096 socket
Device: 17h/23d Inode: 831 Links: 1
Access: (0660/srw-rw----) Uid: ( 0/ root) Gid: ( 999/ docker)
Access: 2019-12-03 15:41:42.633241981 +0900
Modify: 2019-11-28 15:49:03.877925150 +0900
Change: 2019-11-28 15:49:03.877925150 +0900
Birth: -
Пользователям, являющимся членами этой группы, не нужно sudo
для выполнения команд docker
.
Однако вы можете использовать такую функцию-оболочку:
if [[ $IS_MAC_OS = 1 ]]
then
sudo_or_not () {
"$@" # just run the arguments
}
else
sudo_or_not () {
sudo "$@" # run the arguments with sudo
}
fi
sudo_or_not docker run foo/bar
Или просто оберните docker
себя:
if [[ $IS_MAC_OS = 1 ]]
then
docker () {
command docker "$@" # just run the actual docker command with arguments
}
else
docker () {
sudo docker "$@" # run docker with sudo
}
fi
docker run foo/bar