Копия сама не выполняет никакого преобразования. В основном "преобразование" происходит как часть процесса чтения. Весь доступ к файлам осуществляется через вызовы VFS (виртуальной файловой системы). Копия читает данные из одного файла с помощью вызовов VFS и записывает их в другой таким же образом, одинаково для любых атрибутов файла, которые она копирует. Копия ничего не знает о форматах дисков, таких как FAT.
Поэтому, чтобы ответить на второй вопрос, вы можете просто посмотреть на атрибуты файла в исходной файловой системе.
Только для чтения будут показаны (например, видны в ls -l
или Gnome Files -> Properties). "Скрытый" и "системный" атрибуты не имеют эквивалента в Linux (за исключением того, что вы можете получить доступ к ним на FAT с помощью команды fatattr
).
В формате диска FAT нет такого разрешения, как user.
Сначала найдите все файлы, содержащие Linux.Secret =
в начале строки:
find. -type f -exec grep -q '^Linux.Secret =' {} ';'
Обратите внимание, что grep -q
ничего не выводит, он просто завершает работу со статусом, зависящим от того, совпало выражение или нет.
Затем, для всех файлов, прошедших эти тесты, (является обычным файлом и содержит этот текст ), мы запускаем простую (команду GNU)sed
:
find. -type f -exec grep -q '^Linux.Secret =' {} ';' \
-exec sed -i "s/^Linux.Secret =.*/Linux.Secret = 'NewSecret'/" {} +
Это вносит изменение в -место в файлах, заменяя всю строку строкой, которую мы хотели бы иметь. Мы обрабатываем одинарные кавычки, используя двойные кавычки вокруг выражений, которые этого требуют.
Если вам нужно быть более осторожным с сопоставлением и сопоставлять только Linux.Secrets =
, за которым следует что-то в одинарных кавычках:
find. -type f -exec grep -E -q "^Linux.Secret = '[^']+'" {} ';' \
-exec sed -E -i "s/^Linux.Secret = '[^']+'.*/Linux.Secret = 'NEWSECRET'/" {} +
Связанные: