Jag har inte lagt något av Bash, och det är att medan jag gick in i Pythons underbara värld har jag glömt lite bort den här andra kompisen som hjälpte mig så mycket 🙂
Här lägger jag något till Bash-entusiaster, som titeln säger ... Jag kommer att visa dig hur du kontrollerar om det finns en fil eller mapp i systemet, bara genom att använda: if
Vi ska skapa en .sh-fil och ge den exekveringsbehörigheter, för detta räcker det att placera följande kommando i en terminal:
touch test.sh && chmod + x test.sh
Det här han gjorde är att skapa filen (touch test.sh) och ger dig också körningstillstånd (chmod + x test.sh)
Låt oss sedan skriva följande i den:
if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Vad gör detta?
Enkelt 😀
I första raden - » om [-d / opt /];
Här frågar vi, existerar / opt / katalogen? Ja katalog / mapp, eftersom -d betyder katalog eller mapp.
Om det finns så skriver vi ut i terminalen «Ja, det finns det.»(Detta är rad 2 och 3)
Annars och / opt / existerar INTE, då skriver vi ut «Nej det finns inte»(Rad 4 och 5)
Sedan i sista raden (nummer 6) stänger vi if och det är det.
Gör testet, det visar dig att / opt / existerar.
Om du vill att jag ska visa dig den andra texten (den som inte finns) ändra / välja / för någon annan mapp som inte finns i ditt system, till exempel: / asd /
Som du kan se hjälper -d oss att veta om katalogen finns, och nu om vi ändrar -d till -f är det att kontrollera förekomsten av filer (-d = katalog, -f = fil / fil)
Till exempel:
if [ -f /etc/hosts ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Här är listan med alternativ:
-d - »Kontrollera om det finns en viss katalog
-f - »Kontrollera om det finns en viss fil
-w - »Kontrollera om en viss fil har skrivbehörighet
-x - »Kontrollera om en viss fil har körningstillstånd.
Och det finns inte mycket mer att lägga till 🙂
Jag vet att detta kommer att vara mycket användbart och intressant för dem som gillar att programmera i Bash 😉
hälsningar
Ett annat sätt att göra det utan om ... då..else:
test -f /etc/hosts && elcomando
Eller också
test ! -f /etc/hosts && echo "no se encontró el archivo"
Etc.
Höger 😀
... O_O ... Är du Hugo, Hugo från Kuba? ... Använda Windows8, WTF !!!
Tja ja, jag blir bekant med detta operativsystem och om jag måste vara uppriktig är det enda jag hittat användbart är kopieringshanteraren, annars tycker jag personligen att det är ett skadedjur, särskilt dess hybridgränssnitt och tunnelbaneapplikationer. Jag gillar det mindre än Vista och 7 (om än lite effektivare än dessa), vilket jag inte heller gillade. Allt jag använder det för är att spela NFS13 och Skyrim, men det här operativsystemet tar så mycket utrymme att jag var tvungen att ta bort min Linux-partition [snif].
Men för din sinnesfrid kommer jag att berätta att jag i förr dag hämtade Arch ISO för januari och jag planerar att ge den en smak i sin x86-64 version så snart jag får repo (kommer du att ha det?). Nu när jag såg det använder signerade paket som standard, det ger mig mer självförtroende att dyka.
Och min far sa också till mig att han skulle skicka mig en Sony Xperia, som jag vill dra nytta av för att lära mig programmering för Android, vilket var en väntande önskan. Så lugna mig, jag har ännu inte gått till kraftens mörka sida, buahahahaha 😉
manstest
Visst.
Wenas! ..
Vi kan skapa samma .. .. men katalogen skickas som en parameter ..
if [ -d $1 ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Och vi kallar det som:
./test.sh / opt /
Hälsning..
IF är inte en cykel xD
Det passar mig som en handske för ett manus jag gör. Är det giltigt att använda jokertecken? Till exempel för att veta om det finns någon .mp4, kör sedan något på dem.
om [-f * .mp4];
.
Ja, det är helt giltigt ..
Även genom parametrar .. "* .mp4"
T.ex.
if [ -f $1 ];
then
rm -r $1
else
ls
fi
Om du kallar det: ./test.sh * .mp4
Om den hittar .mp4-filer raderas den .. ..men den listar inte filerna i den katalogen ..
Tack för feedback och tips! 🙂
Du saknade f xD
rm -rf $ 1
Det här är mer spännande!
Underbart !!!, Varje dag jag blir mer kär i Linux har Windows förflyttats till något mörkt hörn på min hårddisk, som snart ska raderas för att ge vika för Linuxs ljus.
Utmärkt! .. .. ta sedan nästa steg .. och ta ut det ..
För 6 månader sedan ca. Jag har bara GNU / Linux på alla mina maskiner och jag behöver inte mer .. .. inte W $ .. eller Vin .. ..och jag är mer än glad så .. 😉
Och jag infekterar min omgivning .. eftersom alla ser mig med min Arch, snabb, effektiv och glad .. och de ber mig att installera Linux .. .. ja! .. 😀
Du kan också kontrollera dem för olika tillägg, du kan använda något liknande
#! / Bin / bash
Katalog = $ HEM / Nedladdningar
om [$ Directory]; sedan
eko "Här är en lista med filtyper:"
eko "mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi"
ls {* .mp ?, *. wav, *. fla, *. aud * .midi}
fi
med {} kan du ange flera tillägg i det här fallet, användningen av "?" , är ett jokertecken som låter dig ta "Any Character".
Jag hoppas att du lär dig
Jag rekommenderar kommandot hitta [katalog] [search_pattern] –exec [kommando] {} \
Det fungerar inte, jag lägger dessa filer i katalogen:
AB20160420.TXT
AB20160421.TXT
AB20160422.TXT
AB20160423.TXT
AB20160424.TXT
AB20160425.TXT
search.sh
#! / Bin / bash
PATH = / tmp / TEST
cd $ ROUTE
ls -la | awk '{print »« $ 9}'
om [[-f AB.TEXT]]; sedan
echo »Ange IF om det finns någon AB.TEXT "
fi
om [-f AB20160422.TXT]; sedan
echo "input for a specific AB file"
fi
när jag satte [-f AB.TXT] ger fel
när jag satte [[-f AB.TXT]] ger inget fel men kan inte hitta filen
det fungerar bara när jag lägger in en specifik fil, till exempel:
om [-f AB20160422.TXT]; sedan
Jag kan inte få det att fungera med jokertecken * eller?
#! / usr / bin / env bash
#.kodning = utf-8.
KONTSTANTER
EXIT_OK = 0
EXIT_BAD = 66
FETT = »\ 033 [1m»
NC = »\ 033 [0m»
RÖD = »\ 033 [31m»
om [! "$ 1"];
sedan
eko "saknar en parameter"
avsluta $ EXIT_BAD
fi
cd "$ 1"
filer = »ls -h1 $ 1»
för fil i $ ($ files); do
echo -e "du kan göra vad som helst med $ BOLD $ -fil $ nc här"
gjort
avsluta $ EXIT_OK
@KZ, berätta mer om detta: "och det beror på att jag går in i Pythons underbara värld"!
HAHAHAHA nah ... lite efter lite 🙂
Jag är fortfarande bara en nybörjare i Python, jag har knappast tid att ägna timmar och timmar åt det, så jag är långsam ja, långsam men säker i mitt lärande 😀
Tack så mycket 😀 just igår tänkte jag hur man gjorde det här.
detta med ncurses är fantastiskt 🙂
med 1 ord ... UTMÄRKT!
Under en lång tid perfektade jag ett skript för att ladda ner från Internet, men jag hade problemet att det hämtade filerna som det begärde 1 och igen utan att kunna verifiera existensen 1ro.
Mycket bra tuto.
Fantastiskt bidrag, här från Chile uppskattas.
Varje dag överraskar LINUX mig positivt,
Länge leve fri programvara MIERDAAAA.
servera för
kontrollera om en fil kommer från en katalog
Om jag vill kontrollera förekomsten av någon fil i en sökväg «/ tmp / mottagare», kör något kommando, hur skulle det vara?
jag kommer vara väldigt tacksam
hälsningar
Kära, och att avgöra om IF om filen är fullbefolkad ???. Jag frågar detta för att när du fyller i filen för en överföring kan det ta det även med hälften av data.
Hälsningar och tack för ditt svar.
Tja, jag tror att du också bör lägga till ett exempel, till exempel "Kontrollera att det inte finns" en "fil" eller "katalog" som till exempel
för att kontrollera att den INTE finns, använd till exempel en variabel->
En katalog
#! / Bin / bash
Katalog = »$ HOME / Testkatalog»
Fil = »$ HOME / Testfil»
om [! -d "$ Directory"]; sedan
eko "Det finns ingen $ Directory"
eko "Skapa ->" $ Directory "
mkdir "$ Directory"
annars
ekot "Katalog" $ Katalog "finns redan
fi
om [! -d "$ File"]; sedan
eko "Fil $ existerar inte"
eko "Skapa ->" $ File "
tryck på "$ File"
annars
echo "File" $ File "finns redan
fi
när du gör mkdir kontrollera senare om terminalen skulle kunna skapa det eftersom det kan bryta bollarna om det är en mapp som root eller system hhah
Hälsningar KZKG ^ Gaara en fråga som jag skulle göra för att använda curl. Jag skulle vilja veta hur jag gör från konsolen till ping en url för att se om den är tillgänglig till exempel http://portal.com/directorio/archivo1.php där file1 kommer att lagra ip av besök är för att övervaka ett team som jag behöver göra den pin varje halvtimme så att jag är medveten om den offentliga ip eftersom den ändras från tid till annan och jag kan inte ansluta med ssh .
Hälsningar tack på förhand Gud välsignar dig.
Hallå där,
Först måste du säga att IP-variabeln (till exempel) är innehållet i den filen, för detta måste du:
1. Ladda ner filen
2. Se dess innehåll och få IP-adressen därifrån
3. Att IP är variabeln
Till exempel:
Här hämtar vi filen - »wget http://portal.com/directorio/archivo1.php -o fil.html
Sedan tilldelar vi en variabel dess innehåll: - »: $ {IP: =` cat file.html`}
.. förutsatt att innehållet i den filen bara har IP, om inte, skulle du behöva arbeta med grep, awk eller head.
När du väl har IP som en variabel är resten det enklaste i världen 🙂
Om du vill, skriv till mig via e-post (kzkggaara[at]desdelinux[dot]net) Jag hjälper dig gärna
Tack så mycket kzkggaara mycket tacksam.
Hej, jag förstår inte mycket om datorer och jag vet inte om denna post är relaterad till det problem jag har.
Jag kommenterar om du läser mig, även om inlägget är från för ett år sedan:
Det visar sig att jag skapade en mapp på skrivbordet för att lagra några videor. Tja, jag raderade dessa videor för att jag inte längre behövde dem och nu säger den här mappen att den inte finns (även om den syns på mitt skrivbord).
- Det är det första problemet jag har:
Jag kan inte ta bort mappen.
- Andra problemet och jag tycker viktigare:
I ett försök att radera mappen sätter jag in en FOTOS-mapp. Nu när jag öppnar mappen som "inte existerar" är den tom och FOTONEN finns inte.
Hur kan jag återställa bilderna? Jag har gett alternativet i mappen "Visa dolda dokument" men mappen FOTO visas inte.
Jag hoppas att du kan veta hur det löses.
Tack.
Det finns två användare som är de viktigaste: root och your_user (natalia till exempel). De har båda personliga mappar. din_användare i / hem och rot i / (rotkatalog). Genom att högerklicka på mappen ser du vem den tillhör. Om det är root med din filhanterare med sudo eller gksu eller kdesu beroende på vilken miljö du använder går du till rotkatalogen -> root -> Desktop och du hittar förmodligen bilderna och du kan radera mappen. Vissa distros när du inte är ägare till filen eller katalogen och inte har åtkomstbehörigheter säger att katalogen / filen inte finns. Om du är ägare och inte är root, gör samma sak med filhanteraren med sudo, etc och gå till rotkatalogen -> / home -> personal_mapp -> Skrivbord och se om bilderna finns där och om du kan ta bort mappen.
Om detta inte fungerar måste du se andra alternativ från terminalen (konsolen).
Hej, hur mår du? Jag gör ett jobb i bash och skulle vilja veta hur man kan verifiera om det finns en katalog från tangentbordet, till exempel
#! / Bin / bash
läs rutt
#Enter ~ / Desktop
#Då försöker jag navigera i den katalogen
cd $ sökväg
# Jag får följande bash-meddelande: cd: ~ / Desktop: Filen eller katalogen finns inte
Min fråga är, vad kan jag göra så att jag anger det från tangentbordet och tar det som en katalogsökväg?
Och hur kan jag veta om det finns en grupp,
bra Jag har ett problem i min canaima när jag trycker på knappen cunaguaro står det att det inte finns någon fil eller katalog som det skulle göra för att lösa det problemet och resten öppnar inte cunaguaro tack tack.
Hur gör du om i BASH om filnamnet har mellanslag?
Till exempel:
April data.xlsx
Att fråga om filen finns
Carlos, så här:
om [["$ variabel" == Data \ månad \ av \ April.xlsx]]; sedan echo "matcha"; fi
Du kan också:
om [["$ variable" == 'Data för aprilmånaden.xlsx']]; sedan echo "matcha"; fi
Ett annat alternativ:
[[«$ Variable» == 'Data för April.xlsx']] && echo 'matches' || eko 'matchar inte'
Vissa mörka områden på internet rekommenderar att du använder [[]] istället för [], och om du jämför siffror då: ((variabel> = 3)) && echo 'variabel är större än eller lika med 3' || echo 'variabel är mindre än 3'
Därför för siffror:
om ((nummer! = 4)); då är ekot "$ {number} inte 4"; annat eko "$ {number} är 4"; fi
hur du kan skapa en kod för att validera om katalogen har en specifik text, för att kunna redigera den.
exempel:
om (text1)
göra ingenting
annars
ändra text1 till text2
En fråga, hur skulle det vara för mig att kontrollera var 15: e sekund om filen finns eller inte, tack.
Hej,
detta:
om [-w / home / Komun / Logs / ti]; sedan
Ta reda på om filen är skrivbar. Men det är baserat på användarbehörigheter. Kan det göras för att ta reda på om gruppen eller de andra har behörighet?