하위 디렉터리 이름을 사용하여 하위 디렉터리의 파일 이름을 바꾸는 방법

하위 디렉터리 이름을 사용하여 하위 디렉터리의 파일 이름을 바꾸는 방법

bash에서는 매우 기본적일 수 있으므로 이것이 중복되지 않기를 바랍니다. 그러나 나는 항상 다른 결과에서 비슷한 문제를 발견합니다. 나는 많은 하위 디렉터리를 가지고 있으며, 각 하위 디렉터리 aaa.txt에는 하위 디렉터리의 유일한 txt 파일인 " " 파일이 포함되어 있습니다. txt 파일 이름은 항상 동일합니다(따라서 위의 예에서는 각 하위 디렉터리에서 항상 "aaa"입니다). txt 파일에 하위 디렉터리 이름을 추가해야 합니다. 따라서 내가 ./AAA/aaa.txtand 를 가지고 있다고 가정하면 ./BBB/aaa.txt스크립트의 결과는 다음 ./AAA/AAA_aaa.txt과 같아야 합니다../BBB/BBB_aaa.txt

답변1

dirname 명령을 사용하여 디렉터리 이름을 가져오고, basename 명령을 사용하여 파일 이름을 가져온 다음 원하는 대상 이름을 구성할 수 있습니다. 하나의 디렉터리 수준만 사용한다고 가정하면 다음과 같이 설정할 수 있습니다.

FILEPATH=AAA/aaa.txt

그리고 이름이 다음과 같이 변경되었습니다.

mv "$FILEPATH" "$(dirname "$FILEPATH")/$(dirname "$FILEPATH")_$(basename "$FILEPATH")"

관련 정보