많은 하위 디렉토리에 많은 파일이 있습니다.Bash : 재귀 적으로 하위 디렉토리 다시 만들기
나는 그들에게 몇 가지 작업을 수행하고 결과를 새로운 파일로 반환하고 싶지만 입력과 완전히 동일한 하위 디렉토리가있는 출력 디렉토리에 결과를 반환하고 싶습니다.
나는 이미 시도 :
#!/bin/bash
########################################################
# $1 = "../benchmarks/k"
# $2 = Output Folder;
# $3 = Path to access the solver
InputFolder=$1;
OutputFolder=$2;
Solver=$3
mkdir -p $2;
########################################
#
# Send the command on the cluster
# to run the solver on the instancee.
#
########################################
solveInstance() {
instance=$1;
# $3 $instance > $2/$i.out
}
########################################
#
# Loop on benchmarks folders recursively
#
########################################
loop_folder_recurse() {
for i in "$1"/*;
do
if [ -d "$i" ]; then
echo "dir: $i"
mkdir -p "$2/$i";
loop_folder_recurse "$i"
elif [ -f "$i" ]; then
solveInstance "$i"
fi
done
}
########################################
#
# Main of the Bash script.
#
########################################
echo "Dir: $1";
loop_folder_recurse $1
########################################################
문제는 내 라인 mkdir -p "$2/$i";
입니다. $2
은 처음에 만들 디렉토리의 이름이므로 아무런 문제가 없습니다. 그러나 $i
에서는 절대 경로가 될 수 있으며이 경우 파일에 도착하기 위해 모든 하위 디렉토리를 만들려고합니다. 불가능합니다. 아니면이 ..
나타 문제의 같은 종류의 ...이 버그를 수정하는 방법을 정확히 모르는
을 포함 할 수 있습니다/I는 sed
과 함께 몇 가지를 시도하지만 성공하지 못했습니다 :/
'find -exec' 사용을 고려해보십시오. –
'../../../dir1'과 같은 경로를'$ i'에'dir1'을 사용하여 정확히 만들고 싶다면 – Inian
이 내 문제입니다. 나는 $ ouput/dir1/ –