닫힌 디렉토리를 기준으로 파일 이름 변경

닫힌 디렉토리를 기준으로 파일 이름 변경

초보자 질문인 점 양해 부탁드립니다. 하지만 저는 각각 공통 이름을 가진 파일을 포함하는 고유한 디렉토리를 많이 가지고 있습니다.

여기에 이미지 설명을 입력하세요.

내가하고 싶은 것은 파일을 디렉토리로 이동하고 이름을 바꾸는 것입니다

와일드카드를 사용하는 것이 더 좋지만 목록을 생성하고 이를 반복할 수도 있을 것 같습니다.

도움을 주시면 대단히 감사하겠습니다.

답변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%/}후행 슬래시 문자는 제거됩니다.

관련 정보