Nic nie włożyłem Bash, a wchodząc do cudownego świata Pythona, trochę zapomniałem o tym innym przyjacielu, który tak bardzo mi pomógł
Tutaj wrzucam coś entuzjastom Basha, jak mówi tytuł ... Pokażę Wam, jak sprawdzić, czy w systemie jest plik lub folder, używając tylko: if
Utworzymy plik .sh i nadamy mu uprawnienia do wykonywania, w tym celu wystarczy umieścić w terminalu następującą komendę:
dotknij test.sh && chmod + x test.sh
To, co to zrobiło, to utworzenie pliku (touch test.sh), a także daje uprawnienia do wykonywania (chmod + x test.sh)
Następnie napiszmy w nim co następuje:
if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Co to?
Proste
W pierwszym wierszu - » jeśli [-d / opt /];
Tutaj pytamy, czy katalog / opt / istnieje? Tak, katalog / folder, ponieważ -d oznacza katalog lub folder.
Jeśli tak, wydrukujemy w terminalu «Tak, istnieje.»(To jest linia 2 i 3)
W przeciwnym razie i / opt / NIE istnieje, wydrukujemy «Nie, to nie istnieje»(Wiersze 4 i 5)
Następnie w ostatniej linii (numer 6) zamykamy if i to wszystko.
Wykonaj test, pokaże ci, że / opt / istnieje.
Jeśli chcesz, żebym pokazał ci inny tekst (ten, który nie istnieje) zmień / opt / na inny folder, który nie istnieje w twoim systemie, na przykład: / asd /
Jak widać, -d pomaga nam wiedzieć, czy katalog istnieje, cóż, teraz, jeśli zmienimy -d na -f, to sprawdza istnienie plików (-d = katalog, -f = plik / plik)
Na przykład:
if [ -f /etc/hosts ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Oto lista opcji:
-d - »Sprawdź, czy istnieje określony katalog
-f - »Sprawdź, czy istnieje określony plik
-w - »Sprawdź, czy określony plik ma uprawnienia do zapisu
-x - »Sprawdź, czy określony plik ma uprawnienia do wykonywania.
I cóż, nie ma nic więcej do dodania
Wiem, że będzie to bardzo przydatne i interesujące dla tych, którzy lubią programować w języku Bash
pozdrowienia
Inny sposób na zrobienie tego bez jeśli… wtedy… else:
test -f /etc/hosts && elcomando
Albo też
test ! -f /etc/hosts && echo "no se encontró el archivo"
Itp.
Dobrze 😀
… O_O… Jesteś Hugo, Hugo z Kuby? … Używając Windows8, WTF !!!
Cóż, tak, zapoznałem się z tym systemem operacyjnym i jeśli mam być szczery, jedyne, co uznałem za przydatne, to menedżer kopiowania, w przeciwnym razie osobiście uważam go za szkodnika, zwłaszcza jego interfejs hybrydowy i aplikacje metra. Podoba mi się mniej niż Vista i 7 (choć trochę bardziej wydajne niż te), które też mi się nie podobały. Używam go tylko do grania w NFS13 i Skyrim, ale ten system operacyjny zajmuje tak dużo miejsca, że musiałem usunąć moją partycję Linuksa [snif].
Jednak dla twojego spokoju powiem ci, że przedwczoraj pobrałem Arch ISO na styczeń i planuję przetestować go w wersji x86-64, jak tylko otrzymam repozytorium (czy będziesz go miał?). Teraz, gdy zobaczyłem, że domyślnie używa podpisanych pakietów, daje mi to więcej pewności siebie.
Mój ojciec powiedział mi też, że przyśle mi Sony Xperię, z której chcę się nauczyć programowania na Androida, czego oczekuję. Więc uspokój się, jeszcze nie przeszedłem na ciemną stronę mocy, buahahahaha 😉
test człowieka
Jasne.
Wenas! ..
Moglibyśmy zrobić to samo .. ..ale katalog jest przekazywany jako parametr ..
if [ -d $1 ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
I nazywamy to:
./test.sh / opt /
Powitanie..
JEŻELI nie jest cyklem xD
Pasuje mi jak rękawiczka do scenariusza, który robię. Czy można używać symboli wieloznacznych? Na przykład, aby wiedzieć, czy jest jakiś plik .mp4, uruchom na nich coś.
if [-f * .mp4];
...
Tak, to jest całkowicie ważne.
Nawet poprzez parametry .. „* .mp4”
Np.
if [ -f $1 ];
then
rm -r $1
else
ls
fi
Jeśli to nazwiesz: ./test.sh * .mp4
Jeśli znajdzie pliki .mp4, usuwa je .. ..nie wyświetla listę plików w tym katalogu ..
Dzięki za opinie i wskazówki! 🙂
Przegapiłeś f xD
rm -rf $ 1
To jest bardziej ekscytujące!
Cudownie !!!, Każdego dnia bardziej zakochuję się w Linuksie, Windows spadł do jakiegoś ciemnego zakątka mojego dysku twardego, który ma zostać wymazany, aby ustąpić miejsca światłu Linuksa.
Doskonale! .. .. potem zrób następny krok… i wyrzuć to…
6 miesięcy temu ok. Mam tylko GNU / Linuksa na wszystkich moich maszynach i nie potrzebuję więcej… ..nie W $… ani Wina…… i jestem bardziej niż szczęśliwy… 😉
I infekuję swoje otoczenie .. ponieważ wszyscy widzą mnie z moim Arch, szybkim, wydajnym i szczęśliwym .. .. i proszą mnie o zainstalowanie Linuksa .. .. tak! .. 😀
Możesz również sprawdzić je pod kątem różnych rozszerzeń, możesz użyć czegoś takiego jak
#! / bin / bash
Katalog = $ HOME / Pobrane
if [$ Directory]; następnie
echo "Oto lista typów plików:"
echo „mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi”
ls {* .mp ?, *. wav, *. fla, *. aud * .midi}
fi
użycie {} umożliwia określenie wielu rozszerzeń w tym przypadku użycie znaku „?” , to symbol wieloznaczny, który umożliwia wybranie „Dowolnego znaku”.
Mam nadzieję, że się uczyć
Polecam polecenie znajdź [katalog] [wzorzec_wyszukiwania] –exec [polecenie] {} \
To nie działa, umieściłem te pliki w katalogu:
AB20160420.TXT
AB20160421.TXT
AB20160422.TXT
AB20160423.TXT
AB20160424.TXT
AB20160425.TXT
search.sh
#! / bin / bash
ŚCIEŻKA = / tmp / TEST
cd $ ROUTE
ls -la | awk '{drukuj »« $ 9}'
jeśli [[-f AB.TEKST]]; następnie
echo »Wprowadź IF, jeśli jest jakikolwiek AB.TEKST "
fi
jeśli [-f AB20160422.TXT]; następnie
echo "wejście dla określonego pliku AB"
fi
kiedy wstawię [-f AB.TXT] zwraca błąd
kiedy wstawię [[-f AB.TXT]] nie wyświetla błędu, ale nie może znaleźć pliku
działa tylko wtedy, gdy umieszczę określony plik, na przykład:
jeśli [-f AB20160422.TXT]; następnie
Nie mogę zmusić go do działania z symbolami wieloznacznymi * lub?
#! / usr / bin / env bash
#.encoding = utf-8.
KONTSTANCI
EXIT_OK = 0
EXIT_BAD = 66
BOLD = »\ 033 [1m»
NC = »\ 033 [0m»
RED = »\ 033 [31m»
gdyby [! „1 $”];
następnie
echo "brakuje parametru"
zakończ $ EXIT_BAD
fi
cd „$ 1”
files = »ls -h1 $ 1»
dla pliku w $ ($ files); zrobić
echo -e "możesz zrobić wszystko z $ BOLD $ file $ nc tutaj"
zrobić
wyjdź $ EXIT_OK
@KZ, opowiedz o tym więcej: "a to dlatego, że wkraczam do cudownego świata Pythona"!
HAHAHAHA nie ... krok po kroku 🙂
Nadal jestem nowicjuszem w Pythonie, prawie nie mam czasu, aby poświęcić temu wiele godzin, więc jestem wolny tak, wolny, ale pewny w nauce 😀
Dziękuję bardzo 😀 dopiero wczoraj zastanawiałem się, jak to zrobić.
to z ncurses jest świetne 🙂
jednym słowem… DOSKONAŁA!
Przez długi czas doskonaliłem skrypt do pobierania plików z Internetu, ale miałem problem z tym, że pobierał pliki, o które prosił 1, i ponownie bez możliwości sprawdzenia istnienia 1ro.
Bardzo dobre tuto.
Ogromny wkład z Chile jest doceniany.
LINUX każdego dnia miło mnie zaskakuje,
Niech żyje wolne oprogramowanie MIERDAAAA.
służyć do
sprawdź, czy plik pochodzi z katalogu
Jeśli chcę sprawdzić istnienie dowolnego pliku w ścieżce «/ tmp / receivers», wykonaj dowolne polecenie, jak by to było?
Będę bardzo wdzięczny
pozdrowienia
Szanowni Państwo, i ustalić przez JEŻELI, czy plik jest w pełni zapełniony ???. Pytam o to, bo kiedy wypełniasz plik do transmisji, może to zająć nawet połowę danych.
Pozdrawiam i dziękuję za odpowiedź.
Myślę, że powinieneś również dodać przykład, taki jak „Sprawdź, czy nie ma„ pliku ”lub„ katalogu ”, na przykład
aby sprawdzić, czy NIE istnieje, na przykład użyj zmiennej->
Katalog
#! / bin / bash
Katalog = »$ HOME / Katalog testów»
Plik = »$ HOME / Plik testowy»
gdyby [! -d "$ Directory"]; następnie
echo "Nie ma katalogu $ Directory"
echo "Tworzenie ->" $ Directory "
mkdir „$ Directory”
więcej
echo "Katalog" $ Directory "już istnieje
fi
gdyby [! -d "$ Plik"]; następnie
echo "Plik $ nie istnieje"
echo "Tworzenie ->" $ File "
dotknij „$ File”
więcej
echo "Plik" $ File "już istnieje
fi
kiedy wykonasz mkdir sprawdź później, czy terminal może go utworzyć ponieważ może złamać kulki, jeśli jest to folder jako root lub system hhah
Pozdrawiam KZKG ^ Gaara zapytanie jakbym zrobił, żeby użyć curl. Chciałbym wiedzieć, jak z konsoli pingować adres URL, aby sprawdzić, czy jest na przykład dostępny http://portal.com/directorio/archivo1.php Tam, gdzie plik1 będzie przechowywał adresy IP odwiedzin, to do monitorowania zespołu muszę tworzyć ten pin co pół godziny, aby mieć świadomość publicznego adresu IP, ponieważ zmienia się od czasu do czasu i nie mogę połączyć się przez ssh .
Pozdrowienia z góry dziękuję, niech cię Bóg błogosławi.
Witam,
Po pierwsze, musisz powiedzieć, że zmienna IP (na przykład) to zawartość tego pliku, w tym celu musisz:
1. Pobierz plik
2. Zobacz jego zawartość i uzyskaj stamtąd adres IP
3. To IP jest zmienną
Na przykład:
Tutaj pobieramy plik - »wget http://portal.com/directorio/archivo1.php -o plik.html
Następnie przypisujemy zmiennej jej zawartość: - »: $ {IP: =` cat file.html`}
.. zakładając, że zawartość tego pliku ma tylko adres IP, jeśli nie, musiałbyś pracować z grep, awk lub head.
Kiedy już masz adres IP jako zmienną, reszta jest najprostszą rzeczą na świecie 🙂
Jeśli chcesz napisz do mnie na maila (kzkggaara[at]desdelinux[dot]net) Chętnie Ci pomogę
Dziękuję bardzo kzkggaara bardzo wdzięczny.
Witam, nie rozumiem zbyt wiele z informatyki i nie wiem, czy ten wpis jest związany z problemem, który mam.
Komentuję na wypadek, gdybyś mnie czytał, mimo że post pochodzi sprzed roku:
Okazuje się, że utworzyłem folder na pulpicie do przechowywania niektórych filmów. Cóż, usunąłem te filmy, ponieważ już ich nie potrzebowałem, a teraz ten folder mówi mi, że nie istnieje (chociaż jest widoczny na moim pulpicie).
- To jest pierwszy problem jaki mam:
Nie mogę usunąć folderu.
- Drugi problem i myślę, że ważniejszy:
Próbując usunąć folder, umieściłem folder PHOTOS. Teraz, kiedy otwieram folder, który „nie istnieje”, jest pusty i nie ma tam ZDJĘĆ.
Jak mogę odzyskać zdjęcia? Podałem opcję w folderze „Pokaż ukryte dokumenty”, ale folder ZDJĘCIA się nie pojawia.
Mam nadzieję, że wiesz, jak to rozwiązano.
Dziękuję.
Jest dwóch użytkowników, którzy są głównymi użytkownikami: root i your_user (na przykład natalia). Obaj mają foldery osobiste. twój_użytkownik w / home i root w / (katalog główny). Klikając prawym przyciskiem myszy folder, zobacz, do kogo należy. Jeśli jest to root z menedżerem plików za pomocą sudo lub gksu lub kdesu, w zależności od używanego środowiska, przejdź do katalogu głównego -> root -> Pulpit, a prawdopodobnie znajdziesz zdjęcia i możesz usunąć folder. Niektóre dystrybucje, gdy nie jesteś właścicielem pliku lub katalogu i nie masz uprawnień dostępu, informują, że katalog / plik nie istnieje. Jeśli jesteś właścicielem, a nie jesteś rootem, zrób to samo z menedżerem plików za pomocą sudo itp. I przejdź do katalogu głównego -> / home -> personal_folder -> Desktop i sprawdź, czy są tam zdjęcia i czy możesz usunąć folder.
Jeśli to nie zadziała, będziesz musiał zobaczyć inne opcje z terminala (konsoli).
Witam jak się masz Wykonuję robotę w bashu i chciałbym wiedzieć jak sprawdzić czy jest katalog wpisany z klawiatury np.
#! / bin / bash
czytaj trasę
#Enter ~ / Desktop
# Następnie próbuję przejść do tego katalogu
cd $ ścieżka
# Otrzymuję następujący komunikat bash: cd: ~ / Pulpit: plik lub katalog nie istnieje
Moje pytanie brzmi, co mogę zrobić, aby wprowadzić go z klawiatury i potraktować jako ścieżkę do katalogu?
Skąd mam wiedzieć, czy grupa istnieje,
dobrze mam problem w mojej canaima jak wciskam przycisk cunaguaro to mówi że nie ma pliku lub katalogu jak by to zrobił by rozwiązać ten problem a reszta nie otwiera cunaguaro proszę dziękuję.
Jak zrobić if w BASH, jeśli nazwa pliku zawiera spacje?
Na przykład:
Kwiecień data.xlsx
Aby zapytać, czy plik istnieje
Carlos, w ten sposób:
if [["$ zmienna" == Dane \ miesiąc \ z \ April.xlsx]]; następnie echo 'match'; fi
Możesz także:
if [["$ zmienna" == 'Dane za kwiecień.xlsx']]; następnie echo 'match'; fi
Inna opcja:
[["$ Variable" == 'Dane za kwiecień.xlsx']] && echo 'dopasowuje' || echo „nie pasuje”
W niektórych ciemnych obszarach internetu zalecają używanie [[]] zamiast [], a jeśli zamierzasz porównać liczby, to: ((zmienna> = 3)) && echo 'zmienna jest większa lub równa 3' || zmienna echo 'jest mniejsza niż 3'
Dlatego dla liczb:
if ((liczba! = 4)); wtedy echo "$ {numer} nie jest 4"; w przeciwnym razie echo „$ {numer} to 4”; fi
Jak zrobić kod, aby sprawdzić, czy katalog ma określony tekst, aby móc go edytować.
przykład:
if (tekst1)
nic nie robić
więcej
zmień tekst1 na tekst2
pytanie, jak by to było sprawdzać co 15 sekund, czy plik istnieje, czy nie, dziękuję.
Cześć,
to:
if [-w / home / Komun / Logs / ti]; następnie
Dowiedz się, czy plik jest zapisywalny. Ale opiera się na uprawnieniach użytkowników. Czy można to zrobić, aby dowiedzieć się, czy grupa lub inni mają uprawnienia?