Jak sprawdzić, czy katalog istnieje w wierszu poleceń systemu Linux?


Odpowiedzi:


40
$ if test -d /the/dir; then echo "exist"; fi 

Potrzebuję go w wierszu poleceń, a nie w skrypcie.

5
To jest linia poleceń. Możesz wpisać to bezpośrednio w bash lub wznowić to w test -d /the/dir: test -d /the/dir && echo "exist" || echo "does not exist"ale tak naprawdę są takie same.
David Rodríguez - dribeas

Nie każdy jest skorupą bash!
reinierpost

@reinierpost to powodzenia ...
Stefano Borini

@Stefano Borini: Nadal używam, tcshponieważ jestem zbyt leniwy, aby przepisać moje .tcshrc. Ale bardziej do rzeczy: mogło to wyjaśniać problem PO.
reinierpost

11

Zakładając, że twoja skorupa to BASH:

if [ -d /the/dir ]; then echo 'Exists'; else echo 'Not found'; fi

błąd składni w pobliżu nieoczekiwanego tokena „następnie”

Następnie dowiedz się, jaka jest twoja skorupa. Być może cshczy tcsh?
reinierpost

8
[ -d /home/bla/ ] && echo "exits"

Czy mogę mieć coś takiego jak ELSE, aby wyświetlać tekst, nawet jeśli katalog nie istnieje?

Obejście:[ -d /home/bla/ ] && echo "exist" ; [ ! -d /home/bla/ ] && echo "doesnt exist"
learningloop

7

Kanonicznym sposobem jest użycie narzędzia test (1):

test -d path

gdzie „ścieżka” to nazwa ścieżki do danego katalogu.


Wydaje się, że polecenie nie działa samo, ale po połączeniu z echo "Directory Exists".
Ejaz

2

[ -d "YOUR_DIR" ] && echo "is a dir"

na przykład:

[ -d / ] && echo "root dir

Wyjście będzie: root dir.


[-d: komenda nie znalazła tego właśnie otrzymuję

Pomiędzy „[” a „-” MUSI znajdować się spacja. To powinno działać na powłoce Bourne'a i Basha.

0

Aby sprawdzić, czy katalog istnieje w skrypcie powłoki, możesz użyć:

dir=$1

if [ -d "$dir" ]; then

 #means that $dir exists.

fi

aby sprawdzić odwrotnie, dodaj !przed-d ->[ ! -d ....]


Witamy w Super User! To powiela inną odpowiedź i nie dodaje żadnej nowej treści. Nie publikuj odpowiedzi, chyba że masz coś nowego do dodania.
DavidPostill
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.