Подтвердить что ты не робот

Проверить, существует ли каталог и удалить в одной команде unix

Можно ли проверить, существует ли каталог и удалить, если это произойдет, в Unix с помощью одной команды? У меня есть ситуация, когда я использую задачу ANT 'sshexec', где я могу запускать только одну команду на удаленном компьютере. И мне нужно проверить, существует ли каталог и удалить его...

4b9b3361

Ответ 1

Почему бы просто не использовать rm -rf /some/dir? Это приведет к удалению каталога, если он присутствует, в противном случае ничего не делает.

Ответ 2

Try:

bash -c '[ -d my_mystery_dirname ] && run_this_command'

EDIT. Это будет работать, если вы можете запустить bash на удаленном компьютере....

РЕДАКТИРОВАТЬ 2. В bash, [ -d something ] проверяется, есть ли каталог с именем "что-то", возвращая код успеха, если он существует и является каталогом. Цепочные команды с && запускает вторую команду только в том случае, если первая выполнена успешно. Поэтому [ -d somedir ] && command запускает команду только в том случае, если каталог существует.

Ответ 3

Предполагая, что $WORKING_DIR установлен в каталог... этот однострочный файл должен сделать это:

if [ -d "$WORKING_DIR" ]; then rm -Rf $WORKING_DIR; fi

(иначе просто замените свой каталог)