Можно ли проверить, существует ли каталог и удалить, если это произойдет, в Unix с помощью одной команды? У меня есть ситуация, когда я использую задачу ANT 'sshexec', где я могу запускать только одну команду на удаленном компьютере. И мне нужно проверить, существует ли каталог и удалить его...
Проверить, существует ли каталог и удалить в одной команде unix
Ответ 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
(иначе просто замените свой каталог)