На самом деле упомянутые вами команды выполняют две разные задачи.
su
— это программа, используемая для переключения на другого пользователя. Если вы выполняете su <user>
, вы запускаете сеанс оболочки как другой пользователь . sudo
позволяет запускать одну команду от имени пользователя root. sudo su
позволяет запускать su
от имени пользователя root. Если вы выполняете sudo su <user>
, вы запускаете сеанс оболочки как пользователь . Затем,
sudo su ls
запустит оболочку от имени пользователя ls
, если он существует. sudo ls
отобразит содержимое каталога так же, как если бы команда была введена пользователем root. Если вас интересуют две эквивалентные команды, вы можете рассмотреть...
sudo bash -c "ls" # execute "ls" as the root
sudo ls # execute "ls" as the root
Изman jq
:
o --null-input/-n:
Don't read any input at all! Instead, the filter is run once using
null as the input. This is useful when using jq as a simple
calculator or to construct JSON data from scratch.
Это означает, что jq
даже не будет читать ваш файл при использовании -n
. Это не баг, потому что в синопсисе написано
jq [options...] filter [files...]
То есть файловые операнды (и )являются необязательными.
Для компактного вывода следует использовать
jq -c. generaldq_tabelas_novas.json >newfile.json