самба: файлы, записанные в общедоступную долю никому не принадлежат

Похож на канонический способ выполнить в этом bash что-то как

unset args
while IFS= read -r line; do 
    args+=("$line") 
done < file

cmd "${args[@]}"

или, если Ваша версия удара имеет mapfile:

mapfile -t args < filename
cmd "${args[@]}"

Единственная разница, которую я могу найти между mapfile и, в то время как - считал цикл по сравнению с остротой

(set -f; IFS=$'\n'; cmd $(<file))

это, первый преобразует пустую строку в пустой аргумент, в то время как острота проигнорирует пустую строку. В этом случае поведение остроты - то, что я предпочел бы так или иначе, так двойная премия на нем являющийся компактным.

Я использовал бы IFS=$'\n' cmd $(<file) но это не работает, потому что $(<file) интерпретируется для формирования командной строки прежде IFS=$'\n' вступает в силу.

Хотя это не работает в моем случае, я теперь узнал что много строк завершения поддержки инструментов с null (\000) вместо newline (\n) который действительно делает многое из этого легче при контакте с, скажем, именами файлов, которые являются общими источниками этих ситуаций:

find / -name '*.config' -print0 | xargs -0 md5

подает список полностью определенных имен файлов как аргументы md5 без любого globbing или интерполяции или что бы то ни было. Это приводит к невстроенному решению

tr "\n" "\000" <file | xargs -0 cmd

хотя это также игнорирует пустые строки, хотя это действительно получает строки, которые имеют только пробел.

0
07.03.2013, 07:31
1 ответ

добавьте эту строку к разделу [Global] smb.conf

guest account = dave
0
28.01.2020, 05:03

Теги

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