/sys/info
호스트 이름은 다음 형식의 텍스트 파일에 포함되어 있습니다.
Host Name: xxxxxxx
xxxxxxx
나는 그것으로부터 호스트 이름을 얻고(이 경우) /sys/info
상위 디렉토리의 이름을 해당 호스트 이름과 동일하게 바꾸고 싶습니다 .
답변1
sys/info
파일이 있는 디렉터리를 찾아 해당 파일 내에서 이름을 바꾸려고 한다고 가정해 Host name
보겠습니다.
LC_ALL=C find . -depth -path './*/sys/info' -type f -exec sh -c '
for file do
if host=$(grep -Poxm1 "Host Name:\s*\K\S+" < "$file"); then
echo mv -iT -- "${file%/sys/info}" "${file%/*/sys/info}/$host"
fi
done' sh {} +
(GNU grep
및 GNU 가정 mv
, 테스트되지 않음)
이렇게 하려면 삭제하세요 echo
.