[업데이트-1]:가능하다면 가장 간단한 명령을 배울 수 있도록 동기를 부여해 주세요.
따라서 디렉토리에 하나의 파일이 있습니다.
ls | grep *.mp4
비디오.mp4
이 명령을 사용하여 파일의 이름을 임의로 바꾸고 다른 디렉터리로 이동합니다.
for a in *.mp4; do mv -n "$a" "${a/*/$RANDOM.mp4}"; done; mv *.mp4 /home/misdeed/Documents
괜찮습니다. video.mp4의 이름이 무작위로 지정되었습니다.
cd Documents; ls | grep *.mp4
19889.mp4
질문:
사용 방법은 다음과 같습니다.
a="This is name file"
echo $a
이름 파일입니다
*.mp4 이름 바꾸기(무작위 아님) 및 get
이름 파일입니다.mp4
나는 그것과 같은 것이 필요합니다 :
a="This is name file"
COMMAND FOR RENAME BUT WITHOUT $RANDOM. I WANT USE $a in renamed file
답변1
원래 이름이 미리 알려져 있고 이라고 가정해 보겠습니다 video.mp4
. 이름을 바꾸면
mv video.mp4 "$a".mp4
노트:
- 변수가 비어 있거나 설정되지 않은 경우 최종 이름은 입니다
.mp4
. 점(.
)으로 시작하는 이름은 "숨겨져 있으며" 일반ls
건너뛰므로ls -a
확인해야 합니다. - 대상 이름을 가진 파일이 이미 있는 경우 해당 파일은 손실되고 이전
video.mp4
파일이 해당 이름을 사용합니다. 사고를 방지하려면 다음을 고려하십시오mv -i
. 대상 경로가 존재하는지 확인하라는 메시지가 표시됩니다.
답변2
새로운 임의의 파일 이름을 인쇄하기를 원한다고 가정합니까? 이 경우 가장 쉬운 방법은 무작위 변수의 값을 재사용하는 것입니다.
for file in *.mp4; do
RANDOM_NAME="${file/*/$RANDOM.mp4}";
mv -n "$file" /home/misdeed/Documents/"$RANDOM_NAME";
echo "This is name $RANDOM_NAME.mp4";
done