나에게 폴더1이 있고 폴더2를 자동으로 생성하고 싶다고 가정해 보겠습니다. 이제 이 명령을 다시 실행하고 이 명령을 실행할 때마다 폴더 3, 폴더 4 등이 생성되기를 원한다고 가정해 보겠습니다. 디렉토리 이름 + 1을 가장 큰 숫자로 만든 다음 자동으로 cd하는 가장 좋은 방법은 무엇입니까?
동기: 저는 여러 유형의 입력을 제공하고 여러 출력 파일을 생성하는 프로그램을 가지고 있습니다. 두 번 이상 실행하면 프로그램이 출력 파일을 덮어씁니다. 나는 모든 입력을 폴더에 복사하고, 프로그램을 실행하고, 출력을 폴더에 쓰고, CD를 출력한 다음, 이를 새 폴더에서 반복하는 루프를 설계하고 있습니다.
답변1
이것은 bash 기능입니다.
mknextdir () {
stem=${1:-}
lnum=$(echo "$stem"* | xargs -n1 | cut -c $(( ${#stem} + 1))- | sort -n | tail -n1)
nn="${stem}$(( $lnum + 1))"
mkdir $nn
echo $nn
}
mknextdir folder
귀하의 사례에서는 이라고 부르세요. 생성된 디렉토리의 이름을 다시 에코하므로 해당 디렉토리로 자동으로 이동하려면 다음을 수행
cd $(mknextdir folder)
하거나 스크립트용 변수에 출력을 저장할 수 있습니다.