У меня есть команда, которая работает при запуске от имени текущего пользователя, но если я добавлю к команде префикс 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
?