파일 관리자를 사용하는 것처럼 터미널에서 대화형으로 파일 이름을 편집하려면 어떻게 해야 합니까?

파일 관리자를 사용하는 것처럼 터미널에서 대화형으로 파일 이름을 편집하려면 어떻게 해야 합니까?

명령줄에서 전체 새 이름을 다음과 같이 지정하여 파일 이름을 바꿀 수 있습니다.mv

mv oldname newname

또는 정규식과 Perl file-rename명령 등을 사용하십시오.

rename -d 's/old/new/' oldname

하지만 파일 관리자에서 파일 이름을 바꿀 수 있는 것처럼 수동으로 커서를 이동하고 파일의 비트를 변경하여 대화형으로 파일 이름을 바꿀 수 있습니까?

파일 관리자 이름 바꾸기

답변1

사용더 많은 유틸리티vidir.

vidir oldname

파일 경로가 열립니다 $EDITOR(예: 텍스트 기반 편집기 또는 그래픽 편집기일 수 있음 codium -w). 예를 들어 nano:

비델과 나노

vidir주요 사용 사례는 한 번에 많은 파일의 이름을 바꾸는 것이므로 필요한 만큼 많은 파일을 제공할 수 있습니다 .

vidir mydir/*

답변2

이 작업은 다음과 같은 스크립트로 수행할 수 있습니다.

#! /bin/zsh -
zmodload zsh/system
ret=0
for old do
  new=$old
  ERRNO=0
  if [[ ! -e $old && ! -L $old ]]; then
    syserror -p "$old: "
  elif
    vared -p "Renaming $old:q to: " new &&
      [[ -n $new && $old != $new ]]
  then
    mv -iv -- "$old" "$new" || ret=$?
  fi
done
exit $ret

대상 파일( $new님이 편집함 vared)이 다음 유형의 파일이 되는 경우에 주의하세요.목차(또는 디렉토리에 대한 심볼릭 링크) 평소와 같이 소스( ) 파일을 mv이동하려고 시도합니다.$old입력하다그것. GNU를 사용하면 파일 이름을 해당 파일로 바꾸는 mv옵션을 추가할 수 있습니다 .-T

쉘은 zsh ( iable itor ) 와 유사한 작업을 수행 bash해야 하지만 개행 문자가 포함된 파일 이름에서는 제대로 작동하지 않습니다.IFS= read -rep Prompt -i "$old" newvaredvared


1 최신 버전에서는 추가를 통해 여러 줄의 파일 이름을 입력할 수 있지만 새 파일 이름을 수락하려면 + 또는 + / (터미널에서 NUL을 보내는 조합)를 -d ''눌러야 합니다 .CtrlJCtrl@Space

답변3

나는경량 명령줄 이름 바꾸기 유틸리티다른 기능 중에서도 edit다음 명령을 통해 직접 편집할 수 있습니다.

여기에 이미지 설명을 입력하세요.

프로젝트 홈페이지:
https://github.com/fonic/infiren

종속성:
Bash, GNU 찾기

관련 정보