나는 아무것도 넣지 않았다 강타, 그리고 제가 파이썬의 멋진 세계에 들어가는 동안 저를 많이 도와 준 다른 친구에 대해 조금 잊었습니다 🙂
제목에서 알 수 있듯이 여기에 Bash 애호가들에게 무언가를 넣었습니다. 다음을 사용하여 파일이나 폴더가 시스템에 존재하는지 여부를 확인하는 방법을 보여 드리겠습니다. if
.sh 파일을 생성하고 실행 권한을 부여 할 것입니다. 터미널에 다음 명령을 입력하면 충분합니다.
test.sh && chmod + x test.sh 터치
이것이 한 일은 파일 (test.sh 터치) 실행 권한 (chmod + x test.sh)
그런 다음 그 안에 다음을 작성해 보겠습니다.
if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
이게 뭐야?
간단합니다 😀
첫 번째 줄에서-» if [-d / opt /];
여기에서 / opt / 디렉토리가 있습니까? 예 디렉토리 / 폴더 때문에 -d 디렉토리 또는 폴더를 의미합니다.
그런 다음 존재하는 경우 터미널에 인쇄합니다«예, 존재합니다.»(2, 3 행)
그렇지 않고 / opt / 존재하지 않는 경우«아니요 존재하지 않습니다»(4, 5 행)
그런 다음 마지막 줄 (6 번)에서 if를 닫으면 끝입니다.
테스트를 수행하면 / opt /가 존재 함을 보여줍니다.
다른 텍스트 (존재하지 않는 텍스트)를 표시하려면 시스템에없는 다른 폴더에 대해 / 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 -»특정 파일에 실행 권한이 있는지 확인합니다.
그리고 추가 할 것이 많지 않습니다 🙂
나는 이것이 Bash에서 프로그래밍을 좋아하는 사람들에게 매우 유용하고 흥미로울 것이라는 것을 알고 있습니다 😉
안부
if… then..else없이 수행하는 또 다른 방법 :
test -f /etc/hosts && elcomando
또는
test ! -f /etc/hosts && echo "no se encontró el archivo"
기타.
맞아요 😀
… O_O… 당신은 Hugo입니까, Hugo는 쿠바 출신입니까? … Windows8, WTF 사용 !!!
예, 저는이 OS에 익숙해지고 있습니다. 솔직히 말해서 내가 유용하다고 생각한 유일한 것은 복사 관리자뿐입니다. 그렇지 않으면 개인적으로 해충, 특히 하이브리드 인터페이스와 메트로 애플리케이션을 발견했습니다. 나는 비스타와 7보다 덜 좋아한다 (이것들보다 약간 더 효율적이긴하지만). 나도 좋아하지 않았다. 내가 사용하는 것은 NFS13과 Skyrim을 재생하는 것뿐입니다.하지만이 OS는 너무 많은 공간을 차지하여 Linux 파티션 [snif]를 삭제해야했습니다.
그러나 마음의 평화를 위해 어제 전날 86 월에 Arch ISO를 다운로드했으며 저장소를받는 즉시 x64-XNUMX 버전에서 약간의 테스트를 할 계획이라고 말할 것입니다. 이제는 기본적으로 서명 된 패키지를 사용하므로 더 확실하게 다이빙 할 수 있습니다.
그리고 아버지도 저에게 Sony Xperia를 보내 주겠다고 말씀 하셨는데, Android 용 프로그래밍을 배우기 위해 활용하고 싶은데, 이는 보류중인 소원이었습니다. 그러니 진정해, 나는 아직 힘의 어두운면에 가지 않았다, buahahahaha 😉
남자 테스트
있는지 확인하십시오.
웨 나스! ..
.. .. 같은 것을 만들 수 있지만 디렉토리는 매개 변수로 전달됩니다 ..
if [ -d $1 ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
그리고 우리는 그것을 다음과 같이 부릅니다.
./test.sh / opt /
인사..
IF는주기 xD가 아닙니다.
내가하고있는 스크립트의 장갑처럼 딱 맞습니다. 와일드 카드를 사용하는 것이 유효합니까? 예를 들어, .mp4가 있는지 확인하려면 그 위에 무언가를 실행하십시오.
if [-f * .mp4];
...
네, 전적으로 유효합니다 ..
매개 변수를 통해서도 .. "* .mp4"
예
if [ -f $1 ];
then
rm -r $1
else
ls
fi
호출하는 경우 : ./test.sh * .mp4
.mp4 파일을 찾으면 .. .. 삭제하지만 해당 디렉토리에있는 파일은 나열하지 않습니다 ..
피드백과 팁에 감사드립니다! 🙂
f xD를 놓쳤습니다.
rm -rf $ 1
이것은 더 흥미 롭습니다!
Wonderful !!!, 매일 나는 Linux에 더 빠져들고, Windows는 내 하드 드라이브의 어두운 구석으로 강등되어 Linux의 빛을 비추기 위해 지워질 것입니다.
훌륭합니다! .. .. 다음 단계로 .. 꺼내서 ..
약 6 개월 전 나는 모든 컴퓨터에 GNU / Linux 만 있고 W $ .. 또는 Wine .. ..이 아닌 .. .. 더 이상 필요하지 않습니다.
그리고 저는 제 주변을 감염시키고 있습니다. .. 모든 사람들이 제 아치로 저를 빠르고 효율적이고 행복하게 봅니다 .. .. 그리고 그들은 저에게 Linux를 설치하라고 요청합니다 .. ..yeah! .. 😀
다양한 확장 기능을 확인할 수도 있습니다.
#! / bin / bash
디렉토리 = $ 홈 / 다운로드
if [$ Directory]; 그때
echo "다음은 파일 유형 목록입니다."
echo "mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi"
ls {* .mp ?, *. wav, *. fla, *. aud * .midi}
fi
{}를 사용하면이 경우 "?"를 사용하여 여러 확장명을 지정할 수 있습니다. , "모든 문자"를 사용할 수있는 와일드 카드입니다.
나는 당신이 배울 희망
find [directory] [search_pattern] –exec [command] {} \
작동하지 않습니다. 다음 파일을 디렉토리에 넣습니다.
AB20160420.TXT
AB20160421.TXT
AB20160422.TXT
AB20160423.TXT
AB20160424.TXT
AB20160425.TXT
search.sh
#! / bin / bash
경로 = / tmp / 테스트
cd $ ROUTE
ls -la | awk '{print»«$ 9}'
[[-f AB.TXT]]; 그때
echo»AB가 있으면 IF 입력.TXT »
fi
if [-f AB20160422.TXT]; 그때
echo "특정 AB 파일에 대한 입력"
fi
내가 [-f AB.TXT] 오류 발생
내가 [[-f AB.TXT]] 오류가 발생하지 않지만 파일을 찾을 수 없습니다.
예를 들어 특정 파일을 넣을 때만 작동합니다.
if [-f AB20160422.TXT]; 그때
와일드 카드 * 또는?와 함께 작동하도록 할 수 없습니다.
#! / usr / bin / env bash
#.인코딩 = utf-8.
내용
EXIT_OK = 0
EXIT_BAD = 66
굵게 =»\ 033 [1 분»
NC =»\ 033 [0m»
빨간색 =»\ 033 [31 분»
만약 [! "$ 1"];
그때
echo "매개 변수 누락"
$ EXIT_BAD 출구
fi
cd "$ 1"
파일 =»ls -h1 $ 1»
$에있는 파일 ($ 파일); 하다
echo -e "여기서 $ BOLD $ file $ nc로 무엇이든 할 수 있습니다."
한
$ EXIT_OK 출구
@KZ, 이것에 대해 더 말해봐 : "그리고 그것은 내가 파이썬의 멋진 세계에 들어가기 때문이다"!
HAHAHAHA 아니 ... 조금씩 🙂
저는 여전히 Python의 초보자 일 뿐이며 시간과 시간을 할애 할 시간이 거의 없기 때문에 느립니다. 예, 느리지 만 학습은 확실합니다 😀
정말 고마워요 😀 어제 어떻게할지 생각하고 있었어요.
이것은 ncurses로 훌륭합니다 🙂
한 단어로… 훌륭합니다!
오랫동안 인터넷에서 다운로드 할 수있는 스크립트를 완성하고 있었는데, 1ro의 존재 여부를 확인하지 못하고 요청한 파일을 한 번 더 다운로드하는 문제가있었습니다.
아주 좋은 tuto.
여기 칠레로부터의 엄청난 공헌에 감사드립니다.
매일 LINUX는 나를 즐겁게 놀라게합니다.
오래 살았던 자유 소프트웨어 MIERDAAAA.
봉사하다
파일이 디렉토리에 있는지 확인
«/ tmp / receivers»경로에 파일이 있는지 확인하려면 명령을 실행합니다. 어떻게됩니까?
나는 매우 감사 할 것이다
안부
친애하는, 파일이 완전히 채워 졌는지 IF로 확인하려면 ???. 전송을 위해 파일을 채울 때 데이터의 절반으로도 걸릴 수 있기 때문에 이것을 묻습니다.
응답 해 주셔서 감사합니다.
예를 들어 "파일이 없는지 확인"또는 "디렉토리"와 같은 예제도 추가해야한다고 생각합니다.
존재하지 않는지 확인하려면, 예를 들어 변수 사용->
디렉토리
#! / bin / bash
디렉토리 =»$ 홈 / 테스트 디렉토리»
파일 =»$ 홈 / 테스트 파일»
만약 [! -d "$ 디렉토리"]; 그때
echo "$ 디렉토리가 없습니다"
echo "만들기->"$ 디렉토리 "
mkdir "$ 디렉토리"
그렇지 않으면
echo "디렉터리"$ 디렉터리 "이미 존재 함
fi
만약 [! -d "$ 파일"]; 그때
echo "$ 파일이 존재하지 않습니다"
echo "만들기->"$ 파일 "
"$ 파일"을 터치합니다.
그렇지 않으면
echo "파일"$ 파일 "이미 존재 함
fi
mkdir을 할 때 나중에 터미널이 그것을 만들 수 있는지 확인하십시오. 왜냐하면 그것이 루트 또는 시스템 인 폴더라면 공을 부술 수 있기 때문입니다. hhah
인사 KZKG ^ Gaara는 내가 컬을 사용하는 것처럼 쿼리합니다. 예를 들어 콘솔에서 URL을 핑하여 사용할 수 있는지 확인하는 방법을 알고 싶습니다. http://portal.com/directorio/archivo1.php file1이 방문의 IP를 저장하는 곳은 XNUMX 분마다 핀을 만들어야하는 팀을 모니터링하기위한 것이므로 때때로 변경되기 때문에 공개 IP를 인식하고 ssh로 연결할 수 없습니다. .
인사 미리 감사드립니다. 신의 축복이 있기를.
안녕하세요,
먼저 IP 변수 (예 :)가 해당 파일의 내용이라고 말해야합니다.이를 위해 다음을 수행해야합니다.
1. 파일 다운로드
2. 내용을보고 거기에서 IP를 얻으십시오
3. 그 IP는 변수입니다
예를 들면 다음과 같습니다
여기에서 파일을 다운로드합니다.»wget http://portal.com/directorio/archivo1.php -o 파일.html
그런 다음 변수에 내용을 할당합니다.-»: $ {IP : =`cat file.html`}
.. 해당 파일의 내용에 IP 만 있다고 가정하고 그렇지 않은 경우 grep, awk 또는 head로 작업해야합니다.
IP를 변수로 사용하면 나머지는 세상에서 가장 간단한 것입니다 🙂
원하시면 이메일(kzkggaara[at])로 연락주세요.desdelinux[dot]net) 기꺼이 도와드리겠습니다.
kzkggaara 대단히 감사합니다.
안녕하세요, 저는 컴퓨팅에 대해 잘 이해하지 못하며이 게시물이 제가 가진 문제와 관련이 있는지 모르겠습니다.
게시물이 XNUMX 년 전의 게시물 임에도 불구하고 나를 읽으 셨다면 댓글을 달았습니다.
일부 비디오를 저장하기 위해 데스크탑에 폴더를 만든 것으로 나타났습니다. 더 이상 필요하지 않기 때문에 해당 비디오를 삭제했으며 이제이 폴더에 해당 비디오가 존재하지 않는다는 메시지가 표시됩니다 (데스크톱에 표시 되더라도).
-이것이 내가 가진 첫 번째 문제입니다.
폴더를 삭제할 수 없습니다.
-두 번째 문제는 더 중요하다고 생각합니다.
폴더를 삭제하려고 PHOTOS 폴더를 넣었습니다. 이제 "존재하지 않는"폴더를 열면 비어 있고 사진이 없습니다.
사진을 어떻게 복구 할 수 있습니까? "숨겨진 문서 표시"폴더에 옵션을 지정했지만 PHOTOS 폴더가 나타나지 않습니다.
어떻게 해결되는지 알 수 있기를 바랍니다.
그라시아.
두 명의 주요 사용자가 있습니다 : root와 your_user (예 : natalia). 둘 다 개인 폴더가 있습니다. your_user는 / home에 있고 root는 / (루트 디렉토리)에 있습니다. 폴더를 마우스 오른쪽 버튼으로 클릭하면 폴더가 속한 사람을 볼 수 있습니다. 사용하는 환경에 따라 sudo, gksu 또는 kdesu를 사용하는 파일 관리자의 루트 인 경우 루트 디렉토리-> 루트-> 데스크탑으로 이동하면 사진을 찾을 수 있으며 폴더를 삭제할 수 있습니다. 파일 또는 디렉토리의 소유자가 아니고 액세스 권한이없는 일부 배포판은 디렉토리 / 파일이 존재하지 않음을 알려줍니다. 소유자이고 루트가 아닌 경우 sudo 등을 사용하여 파일 관리자로 동일한 작업을 수행하고 루트 디렉토리-> / home-> personal_folder-> Desktop으로 이동하여 사진이 있는지 그리고 폴더를 삭제할 수 있는지 확인합니다.
이것이 작동하지 않으면 터미널 (콘솔)에서 다른 옵션을 확인해야합니다.
안녕하세요, 어떻게 지내세요? 저는 bash에서 작업을하고 있는데 키보드에서 입력 한 디렉토리가 있는지 확인하는 방법을 알고 싶습니다.
#! / bin / bash
경로 읽기
#Enter ~ / 데스크탑
# 그런 다음 해당 디렉토리를 탐색하려고합니다.
cd $ 경로
# 다음과 같은 bash 메시지가 나타납니다. cd : ~ / Desktop : 파일 또는 디렉토리가 존재하지 않습니다.
내 질문은 키보드에서 입력하고 디렉토리 경로로 사용하려면 어떻게해야합니까?
그룹이 있는지 어떻게 알 수 있습니까?
좋아요 버튼을 눌렀을 때 카나 이마에 문제가 생겼는데 파일이나 디렉토리가 없어서 그 문제를 해결할 수 있다는 말이 나오고 나머지는 열리지 않습니다. 감사합니다.
파일 이름에 공백이 있으면 BASH에서 if를 어떻게 수행합니까?
예를 들면 다음과 같습니다
XNUMX 월 data.xlsx
파일이 있는지 확인하려면
카를로스, 이렇게 :
if [[ "$ 변수"== 데이터 \ 월 \ of \ April.xlsx]]; 그런 다음 '일치'를 에코합니다. fi
다음을 수행 할 수도 있습니다.
if [[ "$ variable"== 'XNUMX 월의 데이터 .xlsx']]; 그런 다음 '일치'를 에코합니다. fi
다른 옵션 :
[[ "$ Variable"== 'XNUMX 월의 데이터 .xlsx']] && echo 'matches'|| echo '일치하지 않음'
인터넷의 일부 어두운 영역에서는 [] 대신 [[]]를 사용하는 것이 좋습니다. 숫자를 비교하려면 다음과 같이하십시오. ((변수> = 3)) && echo '변수가 3보다 크거나 같음'|| echo '변수가 3보다 작습니다'
따라서 숫자의 경우 :
if ((숫자! = 4)); then echo "$ {number}는 4가 아닙니다"; else echo "$ {number}는 4"; fi
디렉토리에 특정 텍스트가 있는지 확인하고 편집 할 수있는 코드를 어떻게 만들 수 있습니까?
예 :
if (text1)
아무것도하지 마세요
그렇지 않으면
text1을 text2로 변경
질문, 파일이 있는지 여부를 15 초마다 확인하는 방법은 무엇입니까? 감사합니다.
안녕하세요
이:
if [-w / home / Komun / Logs / ti]; 그때
파일이 쓰기 가능한지 확인하십시오. 그러나 사용자 권한을 기반으로합니다. 그룹이나 다른 사람이 권한을 가지고 있는지 알아낼 수 있습니까?