Почему команда shuf file> file оставляет пустой файл, а аналогичные команды - нет? [дубликат]

Да, нормально.

UNIX на самом деле не заботится об именах. Для прав доступа к файлам важны числа; когда вы попытаетесь получить доступ к файлу, он увидит, совпадает ли ваш UID, затем GID, затем он будет использовать «другие» разрешения. Пока «прочие» разрешения включают чтение, вы сможете читать эти файлы.

Он не проверяет, существует ли пользователь или группа для этого номера, если только вы не запускаете что-то вроде ls , которое показывает имена пользователей и групп (в этом случае он просто покажет количество).

На моем домашнем сервере у меня много UID и GID, которых нет ни на каких других машинах; NFS прекрасно справляется с этим. Сервер FreeBSD, клиенты OpenBSD и Linux.

9
13.04.2017, 15:36
1 ответ

Самая короткая версия, которую я нашел:

(rm foo && shuf > foo) < foo

Это открывает файл, отменяет связь с ним, а затем усекает файл. Таким образом, вы избегаете усеченного файла перед его открытием, что вы обычно видите при перенаправлении вывода в тот же файл, из которого вы читаете.

0
20.08.2021, 12:58

Теги

Похожие вопросы