Јас не сум ставил ништо од Баш, и тоа е дека додека влегувам во прекрасниот свет на Пајтон, малку заборавив на овој друг пријател кој толку многу ми помогна
Тука ставам нешто за enthusубителите на Баш, како што вели насловот ... showе ви покажам како да проверите дали има датотека или папка во системот, само користејќи: if
Toе создадеме датотека .sh и ќе и дадеме дозволи за извршување, за ова, само ставете ја следнава команда во терминал:
тест на допир.sh && chmod + x тест.sh
Она што го стори ова е да ја креира датотеката (тест на допир.ш) и исто така ви даваме дозволи за извршување (тест chmod + x.sh)
Потоа, да го напишеме следново во него:
if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Што прави ова?
Едноставно
Во првата линија - » ако [-d / opt /];
Тука прашуваме, дали директориумот / opt / постои? Да директориум / папка, бидејќи -d значи директориум или папка.
Потоа, ако постои, ќе печатиме во терминалот «Да, тоа постои.»(Ова е линија 2 и 3)
Инаку и / опти / не постои, тогаш ќе отпечатиме «Не, не постои»(Линии 4 и 5)
Потоа во последната линија (број 6) го затвораме ако и тоа е тоа.
Направете го тестот, тоа ќе ви покаже дека / opt / навистина постои.
Ако сакате да ви го покажам другиот текст (оној што не постои) промена / избор / за која било друга папка што не постои во вашиот систем, на пример: / asd /
Како што можете да видите, -d ни помага да знаеме дали директориумот постои, а сега ако го смениме -d во -f, треба да провериме постоење на датотеки (-d = директориум, -f = датотека / датотека)
На пример:
if [ -f /etc/hosts ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Еве го списокот со опции:
-d - »Проверете дали постои одреден директориум
-f - »Проверете дали постои одредена датотека
-w - »Проверете дали одредена датотека има дозволи за запишување
-x - »Проверете дали одредена датотека има дозволи за извршување.
И, нема уште многу што да се додаде
Знам дека ова ќе биде многу корисно и интересно за оние кои сакаат да програмираат на Баш
Со почит
42 коментари, оставете ги вашите
Друг начин да го направите тоа без ако ... тогаш .. друго:
test -f /etc/hosts && elcomando
Или исто така
test ! -f /etc/hosts && echo "no se encontró el archivo"
Итн
Десно
… О_О… Дали си Уго, Уго од Куба? … Користење на Windows8, WTF !!!
Па, да, се запознавам со овој оперативен систем и ако треба да бидам искрен, единственото нешто што ми беше корисно е управувачот со копирање, инаку јас лично го сметам за штетник, особено неговиот хибриден интерфејс и апликациите за метро. Ми се допаѓа помалку од Виста и 7-ка (макар и малку поефикасна од овие), што не ми се допадна ниту мене. Сè што го користам е да играм NFS13 и Skyrim, но овој ОС ми зафаќа толку многу простор што морав да ја избришам партицијата за Linux [snif].
Како и да е, за ваш мир, ќе ви кажам дека завчера го симнав Arch ISO за јануари и планирам да му дадам вкус во неговата верзија x86-64, веднаш штом ќе го добијам репо (ќе го имате?) Сега, како што видов дека користи потпишани пакети по дифолт, тоа ми дава поголема самодоверба да нуркам.
И татко ми исто така ми рече дека ќе ми испрати Sony Xperia, што сакам да го искористам за да научам програмирање за Android, што беше желба за очекување. Па смири се, сè уште не сум отишол до темната страна на силата, буахахахаха
тест за човек
Секако.
Венас! ..
Можеме да го направиме истиот .. .. но директориумот е донесен како параметар ..
if [ -d $1 ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
И ние го нарекуваме како:
./test.sh / opt /
Поздрав ..
АКО не е циклус xD
Ми одговара како ракавица за сценарио што го работам. Дали е валидно да се користат вајлд карти? На пример, да знаете дали има .mp4, тогаш извршете нешто на нив.
ако [-f * .mp4];
...
Да, тотално важи ..
Дури и преку параметрите .. "* .mp4"
На пример,
if [ -f $1 ];
then
rm -r $1
else
ls
fi
Ако го наречете: ./test.sh * .mp4
Ако најде .mp4 датотеки, ги брише ... ... но не ги наведува датотеките во тој директориум ...
Ви благодариме за повратните информации и совети! 🙂
Го промашивте f xD
rm -rf 1 $
Ова е повозбудливо!
Прекрасно !!!, Секој ден се повеќе се заубувам во Linux, Windows е исфрлен во некој темен агол на мојот хард диск, кој е наскоро да се избрише за да му се отстапи светлината на Linux.
Одлично! .. .. тогаш направете го следниот чекор .. и извадете го ..
Пред 6 месеци приближ. Имам само GNU / Linux на сите машини и не ми требаат повеќе .. .. не W $ .. или Вино .. .. и јас сум повеќе од среќен така ..
И јас ја заразувам околината .. бидејќи сите ме гледаат со мојот Arch, брз, ефикасен и среќен .. .. и ме замолуваат да инсталирам Linux .. .. yeah! .. ..
Можете исто така да ги проверите за различни екстензии, можете да користите нешто како
#! / корпа за отпадоци / баш
Директориум = $ HOME / Преземања
ако [$ директориум]; тогаш
ехо "Еве список со типови на датотеки:"
ехо "mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi"
ls {* .mp ?, *. wav, *. fla, *. aud * .midi}
fi
со користење на {} ви овозможува да наведете повеќе наставки во овој случај, употребата на "?" , е вајлд-картичка, која ви овозможува да земете „Било кој карактер“.
Се надевам дека ќе ти помогне
Ја препорачувам командата пронајди [директориум] [пребарување_паттерн] –екс [команда] {} \
Не работи, ги ставам овие датотеки во директориумот:
AB20160420.TXT
AB20160421.TXT
AB20160422.TXT
AB20160423.TXT
AB20160424.TXT
AB20160425.TXT
пребарување.ш
#! / корпа за отпадоци / баш
ПАТ = = tmp / ТЕСТ
ЦД $ РУТ
ls -la | awk '{print ”« $ 9} »
ако [[-f AB.TXT]]; тогаш
ехо »Внесете АКО има АБ.TXT »
fi
ако [-f AB20160422.TXT]; тогаш
ехо „влез за специфична АБ-датотека“
fi
кога ќе ставам [-f AB.TXT] дава грешка
кога ќе ставам [[-f AB.TXT]] не дава грешка, но не може да ја најде датотеката
работи само кога ставам одредена датотека, на пример:
ако [-f AB20160422.TXT]; тогаш
Не можам да го натерам да работи со вајлд-картички * или?
#! / usr / bin / env баш
#.кодирање = utf-8.
КОНТСТАНТИ
EXIT_OK = 0
EXIT_BAD = 66
BOLD = »\ 033 [1m»
NC = »\ 033 [0m»
RED = »\ 033 [31m»
ако [! „1 долар“];
потоа
ехо „недостасува параметар“
излезете од $ EXIT_BAD
fi
ЦД "$ 1"
датотеки = »ls -h1 $ 1»
за датотека во $ ($ датотеки); направи
ехо -е "можете да направите што било со $ BOLD $ датотека $ nc тука"
направи
излезете од $ EXIT_OK
@KZ, кажи повеќе за ова: „и тоа е затоа што влегувам во прекрасниот свет на Пајтон“!
ХАХАХАха не ... малку по малку
Јас сум сè уште нов човек на Пајтон, тешко дека имам време да посветам часови и часови на него, затоа сум бавен, да, бавен, но сигурен во учењето
Ви благодарам многу ... само вчера размислував како да го направам ова.
ова со ncurs е одлично
со 1 збор… ОДЛИЧНО!
Долго време усовршував скрипта за да преземам преземања од Интернет, но се соочив со проблем со преземање на датотеките што ги побарав 1 и повторно, без да можам да го потврдам постоењето 1ro.
Многу добро туто.
Огромен придонес, овде од Чиле е ценет.
Секој ден повеќе LINUX пријатно ме изненадува,
Да живее слободниот софтвер МИЕРДАААА.
служат за
проверете дали датотеката е од директориумот
Ако сакам да проверам дали постои било која датотека во патеката «/ tmp / приемници», извршете каква било команда, како би била тоа?
Јас ќе бидам многу благодарен
Со почит
Почитувани, и да утврдиме ако Податотеката е целосно пополнета ??? Ова го прашувам затоа што кога ја пополнувате датотеката за пренос, тоа може да го земе дури и со половина од податоците.
Поздрав и благодарност за одговорот.
Па, мислам дека треба да додадете и пример, како што е "Проверете дали не постои" датотека "или" директориум "како на пример
за да проверите дали НЕ постои, на пример, користете променлива->
Директориум
#! / корпа за отпадоци / баш
Директориум = »$ HOME / Тест директориум»
Датотека = »$ HOME / Тест датотека»
ако [! -d "$ Directory"]; тогаш
ехо „Нема $ директориум“
ехо "Креирање ->" $ директориум "
mkdir "$ Directory"
друго
ехо "Директориум" $ Директориум "веќе постои
fi
ако [! -d "$ File"]; тогаш
ехо "Датотеката $ не постои"
ехо "Креирање ->" $ File "
допрете „$ File“
друго
ехо "Датотека" $ File "веќе постои
fi
кога ќе го проверите mkdir подоцна дали терминалот може да го создаде затоа што може да ги скрши топчињата ако е папка како root или систем hhah
Поздрав KZKG ^ Gaara пребарување како што би направил за да користам навивам. Јас би сакал да знам како правам од конзолата до пинг-адреса за да видам дали е достапна на пример http://portal.com/directorio/archivo1.php Онаму каде што датотеката 1 ќе ги зачувува IP-адресите за посета, треба да можам да направам игла за секој половина час за да бидам запознаен со јавната IP-адреса, бидејќи таа се менува од време на време и не можам да се поврзам со ssh .
Поздрав однапред ви благодарам Бог да ве благослови.
Здраво како се случува
Прво, мора да кажете дека променливата IP (на пример) е содржината на таа датотека, за ова мора да:
1. Преземете ја датотеката
2. Погледнете ја нејзината содржина и земете ја IP од таму
3. Таа IP е променлива
На пример:
Тука ја преземаме датотеката - »wget http://portal.com/directorio/archivo1.php -о датотека.html
Потоа, нејзината содржина ја доделуваме на променлива: - »: $ {IP: =` датотека со мачки.html`}
.. претпоставувајќи дека содржината на таа датотека има само IP, ако не, ќе мора да работите со grep, awk или head.
Штом веќе ја имате IP како променлива, останатото е наједноставната работа на светот
Ако сакате пишете ми на е-поштата (kzkggaara [at] desdelinux [dot] net) дека со задоволство ќе ви помогнам
Ви благодарам многу kzkggaara многу благодарен.
Здраво, не разбирам многу од компјутерите и не знам дали овој пост е поврзан со проблемот што го имам.
Коментирам во случај да ме прочитате, иако објавата е од пред една година:
Излезе дека создадов папка на мојата работна површина за да складирам неколку видеа. Па, ги избришав тие видеа затоа што повеќе не ми беа потребни и сега оваа папка ми кажува дека не постои (иако е видлива на мојата работна површина).
- Тоа е првиот проблем што го имам:
Не можам да ја избришам папката.
- Втор проблем и мислам дека е поважен:
Во обид да ја избришам папката, ставив папка ФОТОС. Сега кога ќе ја отворам папката што „не постои“ таа е празна и ФОТОГРАФИИТЕ ги нема.
Како можам да ги вратам фотографиите? Дадов опција во папката „Покажи скриени документи“, но папката ФОТОГРАФИИ не се појавува.
Се надевам дека можете да знаете како се решава.
Ви благодариме.
Постојат двајца корисници кои се главни: root и вашиот_корисник (наталија на пример). И двајцата имаат лични папки. твојот_корисник во / дома и вметнува во / (директориум за root). Со десен клик на папката, видете на кого припаѓа. Ако е root со вашиот менаџер на датотеки користејќи sudo или gksu или kdesu, во зависност од околината што ја користите, одете во root директориумот -> root -> Desktop и најверојатно ќе ги најдете фотографиите и можете да ја избришете папката. Некои дистрибуции кога не сте сопственик на датотеката или директориумот и немате дозволи за пристап ви кажуваат директориумот / датотеката не постои. Ако сте сопственик и не сте root, сторете го истото со управувачот со датотеки со sudo, итн и одете во root директориумот -> / home -> personal_folder -> Desktop и видете дали фотографиите се таму и дали можете да ја избришете папката.
Ако ова не работи, ќе мора да видите други опции од терминалот (конзолата).
Здраво, како си? Јас работам работа во bash и би сакал да знам како да потврдам дали има директориум внесен од тастатурата, на пример
#! / корпа за отпадоци / баш
прочитајте ја рутата
# Внесете ~ / Десктоп
# Потоа се обидувам да се движам по тој директориум
cd $ патека
# Ја добивам следнава порака за баш: cd: ~ / Desktop: Датотеката или директориумот не постојат
Моето прашање е што можам да направам за да го внесам од тастатурата и да го земам како патека за директориум?
И како можам да знам дали постои група,
добро имам проблем во мојата канаима кога ќе го притиснам копчето cunaguaro пишува дека нема датотека или директориум како што би сторил за да се реши тој проблем, а остатокот не отвора cunaguaro, благодарам.
Како го правите if во BASH ако името на датотеката има празни места?
На пример:
Априлски податоци.xlsx
Да прашам дали датотеката постои
Карлос, вака:
ако [["$ променлива" == Податок \ месец \ од април.xlsx]]; потоа ехо „натпревар“; фи
Можете исто така:
ако [["$ променлива" == 'Податоци за месец април.xlsx']]; потоа ехо „натпревар“; фи
Друга опција:
[["$ Variable" == 'Податоци за месец април.xlsx']] && одекнуваат 'совпаѓања' || ехо „не се совпаѓа“
Некои темни области на Интернет препорачуваат да се користат [[]] наместо [], и ако споредувате броеви, тогаш: ((променлива> = 3)) && echo 'променливата е поголема или еднаква на 3' || echo 'променливата е помала од 3'
Затоа, за броеви:
ако ((број! = 4)); тогаш ехо „$ {number} не е 4“; друго ехо "$ {number} е 4"; фи
како можете да направите код за да потврдите дали директориумот има специфичен текст, за да можете да го уредувате.
пример:
ако (текст1)
не прави ништо
друго
смени го текстот1 во текст2
прашање, како би било да се проверува на секои 15 секунди дали датотеката постои или не, благодарам.
Здраво,
ова:
ако [-w / home / Komun / Logs / ti]; тогаш
Откријте дали датотеката е за пишување. Но, тоа се заснова на корисничките дозволи. Може ли да се стори за да се открие дали групата или другите имаат дозволи?