내 우분투 12.04 설정에는 디렉토리에 많은 배경 화면 이미지가 있습니다 /usr/share/wallpapers
. 예를 들어 다음과 같습니다.
usr/share/wallpapers/Leafs_Labyrinth/contents/images/1600x1200.jpg
내가 하고 싶은 것은 배경 화면 디렉토리를 반복하면서 크기가 지정된 모든 이미지를 선택하거나 1600x...
다른 1680x...
폴더에 복사한 다음 이름을 변경하여 위의 이미지가 호출되도록 하는 것입니다 Leafs_Labyrinth1600x1200.jpg
.
여기서는 혼자서는 할 수 없습니다 find
. 일종의 쉘 스크립트를 사용해야 할 것 같지만 이에 대한 경험이 거의 없습니다. 이를 수행하는 쉬운 "자연스러운" 방법이 있습니까?
답변1
이는 귀하의 질문에 대한 세부 사항을 기반으로 작동합니다. 다음을 파일에 저장하고 변경할 수 있습니다.내 디렉토리대상 폴더의 이름으로 다음을 실행합니다 bash name_of_script
.
#!/bin/bash
# * matches any string | [08] matches 0 and 8
for image in /usr/share/wallpapers/*/contents/images/16[08]0x*.jpg; do
# create variables by cutting $image in pieces separated by /
name=$(awk -F/ '{print $5}' <<<$image)
file=$(awk -F/ '{print $8}' <<<$image)
# copy to "mydirectory"
cp "$image" mydirectory/"$name""$file"
done
다음과 같이 단순화할 수도 있습니다.
for image in /usr/share/wallpapers/*/contents/images/16[08]0x*.jpg; do
cp "$image" mydirectory/"$(awk -F/ '{print $5 $8}' <<<$image)"
done