У меня есть команда, которая работает при запуске от имени текущего пользователя, но если я добавлю sudoк ней префикс, она выдаст ошибку.
Я пытаюсь удалить файл, если это каталог (но не если это символическая ссылка на каталог). Это прекрасно работает:
brad@ip-10-0-0-1:~$ [[ -d /path/to/my/place && ! -L /path/to/my/place ]] && rm -rf /path/to/my/place Но если я пытаюсь использовать sudoэто как суперпользователь, я получаю ошибку, потому что sudoкажется, что [[это команда:
brad@ip-10-0-0-1:~$ sudo [[ -d /path/to/my/place && ! -L /path/to/my/place ]] && rm -rf /path/to/my/place sudo: [[: command not found Я должен был добавить двойные скобки, чтобы заставить ! -L /path/to/my/placeбит работать; sudoработал нормально с одинарными скобками, когда я работал
brad@ip-10-0-0-1:~$ sudo [ -d /path/to/my/place ] && rm -rf /path/to/my/place Но теперь, когда я пытаюсь убедиться, что это не символическая ссылка, я не могу заставить ее работать sudo. Как я могу либо:
- Получите синтаксис двойных скобок для работы
sudoили - Получить синтаксис с одной скобкой, чтобы я мог отменить
-Lчасть?
Отлично!
sudo bash -c ...Работал как шарм. Благодарю.