Вы можете заменять по одному в цикле, например:
tree --noreport | sed $'
:1
s/^\\( *\\)\\([\ua0\u2500\u2502\u2514\u251C]\\)\\([\ua0\u2500\u2502\u2514\u251C ]*\u2500 \\)/\\1 \\3/
t1
s|\u2500 | /|'
(вы пропустили\ua0
(неразрывный пробел -)и \u2502
(│
, также показанные в вашем образце ), по крайней мере, которые действительно отображаются в выводе моей версии tree
, по крайней мере, ).
Это обман, если есть файлы, имя которых содержит "─ "
, которому необязательно предшествуют некоторые из этих символов.
Другой подход (, предполагающий, что вы действительно хотите вставить /
и что каталоги, которые вы вызываете tree
, не содержат"─ "
):вставьте /
после первого вхождения "\u2500 "
. ], а затем замените каждый символ перед первым /
пробелом в цикле.
tree --noreport | sed '
s|'$'\u2500'' |&/|;t1
b
:1
s|^\( *\)[^ /]|\1 |
t1'
Сperl
:
tree --noreport | perl -C -pe 's{^.*?\x{2500} }{" " x length($&). "/"}e'
В RHEL 7 SELinux включен по умолчанию, и он будет ограничивать доступ Samba к файловой системе. Когда вы создаете свой собственный общий ресурс Samba по пользовательскому пути, такому как /samba/docs
, вы должны применить к этому пути подходящую маркировку SELinux.
Если вам нужны каталоги, доступные для Samba и других служб, вы должны использовать метку типа контекста SELinux public_content_rw_t
и установить логическое значение smbd_anon_write
SELinux, чтобы разрешить Samba доступ на запись к файлам и каталогам в public_content_rw_t
контекстах с полным контролем. владельцев файлов:
setsebool -P smbd_anon_write=1
semanage fcontext -a -t public_content_rw_t "/samba/docs(/.*)?"
restorecon -Rv /samba/docs
Если вы не планируете получать доступ к /samba/docs
через какую-либо другую службу (, например httpd
или ftpd
), вместо этого вы можете использовать контекст samba_share_t
, и тогда вам не нужна логическая настройка:
semanage fcontext -a -t samba_share_t "/samba/docs(/.*)?"
restorecon -Rv /samba/docs
Команда semanage fcontext -a...
добавит регулярное выражение, определяющее новую маркировку, в конфигурацию SELinux, а restorecon
применит новую маркировку к фактической файловой системе. Вы также можете использовать chcon
для изменения меток контекста SELinux, но тогда ваши изменения будут потеряны всякий раз, когда restorecon
выполнялся (, например. после восстановления резервной копии ). Сохранение информации о маркировке в конфигурации SELinux в первую очередь гарантирует, что ее можно будет восстановить, даже если ваши методы резервного копирования не поддерживают SELinux -, если также выполняется резервное копирование конфигурации SELinux в соответствии с /etc
.