Czy można sprawdzić, czy katalog istnieje i usunąć, jeśli tak, w systemie Unix za pomocą jednego polecenia? Mam sytuację, w której używam zadania ANT 'sshexec', w którym mogę uruchomić tylko jedną komendę na zdalnej maszynie. I muszę sprawdzić, czy katalog istnieje i usunąć go ...
110
mkdir -p
zignoruje błędy, jeśli już istnieją.Odpowiedzi:
Zakładając, że
$WORKING_DIR
jest ustawiony na katalog ... ten jednolinijkowy powinien to zrobić:(w przeciwnym razie po prostu zastąp swoim katalogiem)
źródło
Dlaczego po prostu nie użyć
rm -rf /some/dir
? Spowoduje to usunięcie katalogu, jeśli jest obecny, w przeciwnym razie nic nie rób. W przeciwieństwie dorm -r /some/dir
tego wariantu polecenia nie ulegnie awarii, jeśli folder nie istnieje.źródło
Próbować:
EDYCJA : To zadziała, jeśli możesz uruchomić bash na zdalnym komputerze ...
EDYCJA 2 : W bash
[ -d something ]
sprawdza, czy istnieje katalog o nazwie „coś”, zwracając kod sukcesu, jeśli istnieje i jest katalogiem. Łączenie poleceń z && uruchamia drugie polecenie tylko wtedy, gdy pierwsze się powiedzie. Więc[ -d somedir ] && command
uruchamia polecenie tylko wtedy, gdy katalog istnieje.źródło
[ -d /test ] && rmdir /test
(lub rm -rf / test, jeśli nie będzie pusty i chcesz usunąć całą zawartość)Oto kolejna wkładka:
źródło