다시 입력하지 않고 파일 이름에 접두사/접미사를 추가하시겠습니까?

다시 입력하지 않고 파일 이름에 접두사/접미사를 추가하시겠습니까?

나는 다음과 같은 것을하고 싶다

$ tmp=name*
$ mv $tmp new_$tmp
$ ls new_*
$ new_name-with-stuff-i-dont-want-to-type name-with-stuff-i-dont-want-to-type

환경 변수 설정이 작동하는 것 같습니다.

$ $tmp
$ name-with-stuff-i-dont-want-to-type

하지만 내가 할 때는 아니야mv

$ mv $tmp new_$tmp
$ ls new_*
$ new_name*

질문: 타이핑 시간을 절약할 수 있는 영리하고 간단한 방법이 있습니까?

답변1

나는 항상 bash 확장을 좋아했습니다.

ls
name-with-stuff-i-dont-want-to-type

mv name-with-stuff-i-dont-want-to-type{,_old}

ls
name-with-stuff-i-dont-want-to-type_old

이는 다음과 같습니다.

mv name-with-stuff-i-dont-want-to-type name-with-stuff-i-dont-want-to-type_old

접두사:

ls
name-with-stuff-i-dont-want-to-type

mv {,new_}name-with-stuff-i-dont-want-to-type

ls
new_name-with-stuff-i-dont-want-to-type

파일 이름을 쉽게 바꾸려면 다음을 수행하십시오.

ls
fileFOOname

mv file{FOO,BAR}name

ls
fileBARname

답변2

의 경우 zsh일반적으로 다음을 사용합니다 zmv.

autoload zmv # in ~/.zshrc
zmv 'name*' 'tmp_$f'

답변3

여러 파일이 일치하는 name*경우 $tmp해당 이름을 모두 공백으로 구분하여 포함합니다. 대신, 이를 $tmp배열로 취급하고 그 안의 각 요소에 대해 연산을 수행하십시오.

for file in $tmp; do 
    mv "$file" "new_$file"
done

공백이 포함된 이름이 여러 이름으로 분리되는 것을 방지하려면 큰따옴표를 사용하세요.

관련 정보