답변1
이런 식으로 해보세요.
for d in ${PATH_OF_YOUR_DIRECTORY}/*/ ; do
mv ${d}index.html ${PATH_WHERE_YOU_HAVE_TO_MOVE}/$(basename ${d}).html
done
답변2
질문에서 명확하지 않습니다어떻게파일 이름을 바꿔야 하므로 원래 이름에 원래 디렉터리 이름을 추가하여 이름을 바꿔야 한다고 가정합니다.
아래 코드는 index.html
질문에 표시된 대로 작업 디렉터리에 하위 디렉터리가 있고 각 하위 디렉터리에 파일이 있다고 가정합니다. 파일 index.html
은 이라는 새 디렉터리로 이동됩니다 allfiles
.
mkdir allfiles || exit
for pathname in */index.html
do
mv -- "$pathname" "allfiles/${pathname%/index.html}-index.html"
done
변수 pathname
는 유사한 경로명을 보유하며 매개변수 확장은 A-Dwelling-Place/index.html
경로명의 끝에서 ${pathname%/index.html}
비트를 제거 합니다./index.html
대신 파일 대신 디렉터리를 반복할 수 있습니다.
mkdir allfiles || exit
for dirname in */
do
mv -- "$dirname"/index.html "${dirname%/}-index.html"
done
이 경우 dirname
변수는 A-Dwelling-Place/
와 같은 경로 이름을 보유하며 ${dirname%/}
후행 슬래시 문자는 제거됩니다.