반응형

bash 18

접두사/접미사를 사용하여 이름을 변경하는 방법은 무엇입니까?

접두사/접미사를 사용하여 이름을 변경하는 방법은 무엇입니까? 내가 어떻게 하니mv original.filename new.original.filename원래 파일 이름을 다시 입력하지 않고? 저는 이런 일을 할 수 있다고 상상할 것입니다.mv -p=new. original.filename아니면 아마도mv original.filename new.~아니면 뭐든지 - 하지만 보고 나면 이런 것은 볼 수 없습니다.man mv/info mv페이지들 물론 이를 위해 셸 스크립트를 작성할 수는 있지만, 기존의 명령/플래그는 없습니까?당신은 사용할 수 있습니다.rename(1)명령: rename 's/(.*)$/new.$1/' original.filename 편집: 만약rename사용할 수 없으며 둘 이상의 파일 이름..

code 2023.06.27

존재하지 않는 경우에만 mkdir

존재하지 않는 경우에만 mkdir 이 질문에는 이미 다음과 같은 답이 있습니다. 디렉토리가 아직 존재하지 않는 경우에만 mkdir를 사용하는 방법은 무엇입니까? (17개 답변) 마감됨8년 전에. bash 스크립트에서 수행할 작업: mkdir product; 스크립트를 두 번 이상 실행하면 다음 메시지가 표시됩니다. mkdir: product: File exists 콘솔에서. 그래서 dir가 없는 경우에만 mkdir를 실행하려고 합니다.이것이 가능합니까?테스트를 합니다. [[ -d dir ]] || mkdir dir 또는 -p 옵션을 사용합니다. mkdir -p dir if [ ! -d directory ]; then mkdir directory fi 또는 mkdir -p directory -p 경우 생성..

code 2023.05.23

tee에 대한 파이프 명령 출력 및 종료 명령 코드 저장

tee에 대한 파이프 명령 출력 및 종료 명령 코드 저장 이 질문에는 이미 다음과 같은 답이 있습니다. Bash의 파이프 출력 및 종료 상태 캡처 (16개 답변) 마감됨9년 전에. 커뮤니티는 6개월 전에 이 질문을 다시 시작할지 여부를 검토한 후 이 질문을 닫았습니다. 원래 종료 이유가 해결되지 않았습니다. 출력을 로그 파일로 리디렉션하기 위해 명령을 래핑하는 셸 스크립트(mvn 클린 설치)가 있습니다. #!/bin/bash ... mvn clean install $@ | tee $logfile echo $? # Does not show the return code of mvn clean install 이제 만약에mvn clean install오류로 인해 실패합니다. 래퍼 셸 스크립트도 해당 오류로 인해..

code 2023.05.23

사용자 존재 여부 확인

사용자 존재 여부 확인 사용자가 존재하는지 확인하는 스크립트를 만들고 싶습니다.나는 아래의 논리를 사용하고 있습니다. # getent passwd test > /dev/null 2&>1 # echo $? 0 # getent passwd test1 > /dev/null 2&>1 # echo $? 2 따라서 사용자가 존재한다면, 우리는 성공할 수 있습니다. 그렇지 않으면 사용자는 존재하지 않습니다.아래와 같이 bash 스크립트에 위의 명령어를 입력했습니다. #!/bin/bash getent passwd $1 > /dev/null 2&>1 if [ $? -eq 0 ]; then echo "yes the user exists" else echo "No, the user does not exist" fi 제 스크..

code 2023.05.13

bash 스크립트에서 여러 프로그램을 병렬로 실행하려면 어떻게 해야 합니까?

bash 스크립트에서 여러 프로그램을 병렬로 실행하려면 어떻게 해야 합니까? 여러 프로그램을 동시에 실행하는 .sh 파일을 작성하려고 합니다. 해봤습니다. prog1 prog2 하지만 prog1을 실행한 다음 prog1이 끝날 때까지 기다린 다음 prog2를 시작합니다. 그러면 어떻게 병렬로 실행할 수 있을까요?어때요? prog1 & prog2 && fg 다음 작업을 수행합니다. »prog1. 백그라운드로 보내되 출력은 계속 인쇄합니다. »prog2그리고 그것을 전경에 보관하여 당신이 그것을 닫을 수 있습니다.ctrl-c. 을 닫을 때 .prog2로 돌아갈 것입니다.prog1의 전경, 그래서 당신은 그것을 닫을 수도 있습니다.ctrl-c. 여러 프로그램을 병렬로 실행하려면: prog1 & prog2 & ..

code 2023.05.13

파일당 한 줄씩 재귀적인 전체 경로 목록을 얻으려면 어떻게 해야 합니까?

파일당 한 줄씩 재귀적인 전체 경로 목록을 얻으려면 어떻게 해야 합니까? 어떻게 하면 재귀적인 한 줄당 한 줄의 경로의 플랫 목록을 뱉을 수 있습니까? 예를 들어, 전체 경로가 포함된 평평한 파일 목록을 원합니다. /home/dreftymac/. /home/dreftymac/foo.txt /home/dreftymac/bar.txt /home/dreftymac/stackoverflow /home/dreftymac/stackoverflow/alpha.txt /home/dreftymac/stackoverflow/bravo.txt /home/dreftymac/stackoverflow/charlie.txt ls -a1필요한 것은 거의 다 하지만 경로 조각이 아니라 전체 경로를 원합니다.찾기 사용: find . f..

code 2023.05.13

폴더의 파일 이름을 순차 번호로 변경

폴더의 파일 이름을 순차 번호로 변경 디렉터리에 있는 파일의 이름을 순차적인 번호로 변경합니다.파일 생성 날짜를 기준으로 합니다. : 예들면sadf.jpg0001.jpg,wrjr3.jpg0002.jpg파일의 총 양에 따라 선행 0의 수(필요하지 않은 경우 추가 0이 필요하지 않음).한 줄의 아름다움: ls -v | cat -n | while read n f; do mv -n "$f" "$n.ext"; done 을 변경할 수 ..ext와 함께.png,.jpg 타기.루프를 사용해 보세요.let,그리고.printf패딩의 경우: a=1 for i in *.jpg; do new=$(printf "%04d.jpg" "$a") #04 pad to length of 4 mv -i -- "$i" "$new" let a=..

code 2023.05.03

배시 루프 목록에서 공백을 이스케이프하려면 어떻게 해야 합니까?

배시 루프 목록에서 공백을 이스케이프하려면 어떻게 해야 합니까? 특정 디렉터리의 모든 하위 디렉터리(파일 제외)를 순환하는 bash 셸 스크립트가 있습니다.문제는 일부 디렉토리 이름에 공백이 포함되어 있다는 것입니다. 테스트 디렉토리의 내용은 다음과 같습니다. $ls -F test Baltimore/ Cherry Hill/ Edison/ New York City/ Philadelphia/ cities.txt 그리고 디렉터리를 순환하는 코드: for f in `find test/* -type d`; do echo $f done 다음은 출력입니다. 테스트/볼티모어테스트/체리힐테스트/에디슨테스트/신규요크도시필라델피아 시험 Cherry Hill과 New York City는 2개 또는 3개의 개별 항목으로 처리됩..

code 2023.04.28

셸 스크립트를 사용하여 도커 컨테이너 내에서 스크립트 실행

셸 스크립트를 사용하여 도커 컨테이너 내에서 스크립트 실행 도커 컨테이너를 설정하기 위한 셸 스크립트를 작성하려고 합니다.내 스크립트 파일은 다음과 같습니다. #!bin/bash docker run -t -i -p 5902:5902 --name "mycontainer" --privileged myImage:new /bin/bash 이 스크립트 파일을 실행하면 컨테이너가 새로 호출된 bash에서 실행됩니다. 이제 스크립트 파일(테스트)을 실행해야 합니다.sh)위의 지정된 셸 스크립트에서 이미 컨테이너 내부에 있습니다.(예: cd /path/to/test).sh & & ./test.sh ) 어떻게 하는 거죠?다음을 사용하여 실행 중인 컨테이너에서 명령을 실행할 수 있습니다.docker exec [OPTION..

code 2023.04.28
반응형