Скрытие файлы, не влияя на программное обеспечение или функциональность операционной системы [закрыто]

Se llama comando compuesto y la sintaxis es

{ compound-list; }

(este es un ejemplo de un comando compuesto, otras cosas como forbucles, etc. también son comandos compuestos)

Por ejemplo:

{
    echo 'hello'
    echo 'world'
}

El ;solo es necesario si no hay una nueva línea antes del final}:

{ echo 'hello'; echo 'world'; }

Los comandos en la construcción {...; }se ejecutan en el entorno actual , al igual que para una función.

Más información sobre esto está disponible en la descripción del estándar POSIX de comandos compuestos .

No hay razón (o posibilidad )de nombrar estas secciones ya que nombrar una sección así es más o menos equivalente a crear una función de shell de todos modos. Además, nombrar un comando compuesto solo sería necesario si se va a consultar más adelante, que es para lo que se usan las funciones.

Obviamente se pueden utilizar comentarios:

# my hello world thing
{
    echo 'hello'; echo 'world'
}

De manera similar, se puede tener una subcapa con

(
    echo 'hello'
    echo 'world'
)

Esto se ejecuta en un entorno secundario del shell actual, y los cambios en las variables, etc. no se reflejarán en el shell actual.

La sintaxis general es

( compound-list )

Aquí, no hay necesidad de un final ;antes de ).


Como curiosidad, las funciones de shell pueden usar (...)en lugar de {...;}para ejecutar su código en un entorno local:

helloworld () (
    echo 'hello'
    echo 'world'
)

Esto puede ser útil para saber si se está escribiendo una función en un lenguaje shque no admite variables locales(localo typesetenbash)y que no necesita modificar el entorno del script.

-3
23.05.2017, 10:26
2 ответа

Файлы, начинающиеся с точки (dotfiles), предназначены для использования приложением, и обычно они определяют конфигурацию приложения; они не предназначены для использования конечным пользователем, которому даже не нужно знать о них.

Таким образом, цель dotfiles на самом деле не в том, чтобы «навести порядок» и уж тем более не в том, чтобы «не допустить, чтобы новые пользователи все испортили» (для этого и нужны разрешения; обратите внимание, что dotfiles можно легко увидеть через ls -a), а просто для организации файлов и сокращения беспорядка путем отделения системных файлов (точечные файлы) от данных, созданных пользователем.

Причина, по которой не существует другой системы для сокрытия файлов, заключается в том, что она считалась избыточной, поскольку точечные файлы уже доказали свое назначение. Обратите внимание, что в Linux, в отличие от MS Windows, нет «скрытого» атрибута для файлов, хотя есть много других (наберите man chattr, чтобы их увидеть).

Если вы хотите запретить пользователям доступ к файлам, а не просто скрывать от них файлы, есть и другие механизмы: разрешения (chmod), ACL, вплоть до контроля доступа SELinux.

2
28.01.2020, 05:18

Настоящее решение убрать файл с пути — это поместить его в другой каталог.

Файлы, имена которых начинаются с точки, по умолчанию скрыты в некоторых программах в соответствии с древней традицией Unix. Он начался с команды ls и был имитирован многими, но не всеми файловыми менеджерами.

Предлагается скрывать файлы, имена которых перечислены в файле с именем .hidden, который создан в Gnome. Он не имеет очень широкой поддержки. Вы можете попробовать использовать его, но не ожидайте, что все программное обеспечение, которое используют ваши пользователи, скроет их. Если пользователи видят файлы в одном программном обеспечении, но не видят его в другом, это может привести к обратным результатам: они могут удалить файлы, которые видят в программе А, но не в программе Б, думая, что если программа Б не показывает файлы, значит, что-то не так. неправильно с ними, и они, вероятно, не должны быть там. По этой причине, хотя я сообщаю вам, что эта функция существует, я рекомендую не использовать ее.

Еще раз, если вы не хотите, чтобы пользователи испортили некоторые файлы, поместите их в другой каталог. И, если применимо, не давайте им разрешения возиться с этими файлами.

3
28.01.2020, 05:18

Теги

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