проверьте, существует ли каталог и удалите в одной команде unix - PullRequest
79 голосов
/ 31 января 2011

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

Ответы [ 3 ]

110 голосов
/ 20 июня 2016

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

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

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

98 голосов
/ 31 января 2011

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

28 голосов
/ 31 января 2011

Попробуйте:

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

РЕДАКТИРОВАТЬ : Это будет работать, если вы можете запустить bash на удаленном компьютере ....

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...