파일 이름을 임의의 문자로 일괄 변경하는 방법은 무엇입니까?


3

이름을 바꾸고 싶은 사진이 많이 있습니다. 나는 그들이 임의의 10 문자가되기를 원합니다. 그것을 할 수있는 방법이 있습니까?

macOS Sierra를 실행 중입니다.

아직 아무것도 시도하지 않았습니다.

이 문제에 대한 무료 솔루션을 선호합니다.

macos  mac 

답변:


7

다음 스크립트는 이름을 바꿀 사진이 사진 폴더에 있다고 가정합니다. 파일 확장자를 그대로 유지하면서 Pictures 폴더의 모든 파일 이름을 10 자로 된 임의의 문자와 숫자로 바꿉니다.

#!/bin/bash

chars=( {a..z} {A..Z} {0..9} )

function rand_string {
    local c=$1 ret=
    while((c--)); do
        ret+=${chars[$((RANDOM%${#chars[@]}))]}
    done
    printf '%s\n' "$ret"
}

for file in ~/Pictures/*
do
    ext=$(echo ${file} | sed 's,^.*\(\.[^\.]*$\),\1,')
    mv "$file" ~/Pictures/"$(rand_string 10)"${ext}
done

이름을 바꿀 파일이 사진 폴더에 없으면 ~/Pictures적절히 편집하십시오 . 이는 ~단순히 사용자 홈 디렉토리의 바로 가기입니다. 따라서 ~/Pictures= /Users/YourUsername/Pictures. (가) 있습니다 *에있는 모든 파일과 일치하는 스크립트를 알려줍니다 ~/Pictures. 또한 당신이 수 변화에 의해 생성 된 문자의 수를 변경할 수 있습니다 10의를 (rand_string 10)당신이 원하는 번호를.

  • 이것을 일반 텍스트 파일에 복사하여 붙여넣고 다음과 같이 이름을 바꾸십시오. rename_pics.sh

  • 터미널을여십시오 (위치를 모르는 경우 스포트라이트를 사용하여 찾으십시오)

  • 터미널 유형 chmod 755 rename_pics.sh에서 Enter 키를 누릅니다

  • 그런 다음 ./rename_pics.sh터미널을 입력하고 Enter를 눌러 스크립트를 실행하십시오.


그런데 확장명을 변경하지 않고 이름을 바꿀 수있는 방법이 있습니까? 지금은 jpg, png 및 mp4 파일의 이름을 바꾸는 세 가지 스크립트가 있습니다. 먼저 바탕 화면에 jpg 파일 만 놓고 바탕 화면에서 jpg 스크립트를 실행 한 다음 파일을 다른 폴더로 옮깁니다. png 및 mp4 파일에 대해 동일한 프로세스를 수행합니다. 스크립트가 확장자를 변경하지 않고 모든 파일의 이름을 바꾸면 더 좋습니다.

1
@danielAzuelos sed마법에 감사드립니다 . 나는 이것을 대답에 포함시켰다.
I0_ol

0

이것을 텍스트 파일에 복사하여 붙여 넣으십시오.

#!/bin/bash

cd "$1"
for i in ./*; do
    mv "$i" $((RANDOM * 32768 + RANDOM))
done

다음 명령을 실행하여 파일을 실행 가능하게 만드십시오 (파일을로 저장했다고 가정 randomlyrename).

chmod 755 randomlyrename

그리고 파일을 실행하십시오 :

./randomlyrename /path/to/folder/containing/things-to-rename

제공되는 디렉토리의 모든 이름을 10 자리 길이의 임의의 숫자 문자열로 바꿉니다 .


1
@perhapsmaybeharry 스크립트가 모든 파일 확장자를 제거했습니다. 어쨌든, 나는 이미 다른 사용자로부터 내 대답을 찾았으며 그것을 수락했습니다. 시간을 내 주셔서 감사합니다. :) 정말 고맙습니다 :)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.