이름을 다시 입력하지 않고 새 문자만 추가하여 파일을 이동하고 이름을 변경하는 방법

이름을 다시 입력하지 않고 새 문자만 추가하여 파일을 이동하고 이름을 변경하는 방법

매일 생성되는 일부 파일의 위치를 ​​너무 자주 변경합니다. 문제는 새로운 필수 문자만 추가하여 이름을 변경하고 싶다는 것입니다.

내가 원하는 것은 이것이다:

$ mv file.csv /home/user/{something}_backup1

그래서 나는 볼 수 있습니다 :

$ ls /home/user
file.csv_backup1

내가 지금 하고 있는 일은 간단하다.

$ mv file.csv /home/user/file.csv_backup1

"게으르지 말고 그렇게 하세요"라고 말할 수 있습니다. 문제는 실제 파일 이름의 길이가 약 25자이고 다시 입력하기가 정말 짜증난다는 것입니다.

과거에 제시된 것은 단지 예일 뿐이며, 다른 목차일 수도 있고, 다른 새로운 텍스트일 수도 있습니다.

그런데, 저는 bash 쉘을 사용하고 있습니다

답변1

당신이 사용할 수있는또는쉘 rc 파일에 추가된 기능:

mymv(){ echo mv "$1" "$2/${1##*/}_$3"; }
mymv file.csv /home/user backup1

echo테스트 완료 후 시간 삭제

답변2

IMHO, 가장 쉬운 방법은 변수를 사용하는 것입니다.

a=file.csv; mv "$a" ~user/"$a"_backup

변수를 설정하고 사용할 때 변수의 탭 완성 기능을 활용할 수 있습니다.

답변3

에서는 bash다음을 시도해 볼 수 있습니다.

  • 유형 mv file1.
  • Ctrl-w충분히 눌러 삭제하세요 file1.
  • Ctrl-y다시 붙여넣으려면 누르세요 file1.
  • 유형 /home/user/.
  • Ctrl-y붙여넣으려면 누르세요 file1.
  • 나머지를 입력하세요:_backup

답변4

기본 폴더(또는 이동하려는 파일이 포함된 폴더 이외의 폴더)에서 간단한 스크립트를 만들 수 있습니다. 스크립트는 다음과 같습니다:

#!/bin/bash
for var in ./*
do
if [ -f "$var" ]
then
mv "$var" /home/user/"$var".backup1
fi
done
  • 파일을 이동할 폴더 내에서 이 스크립트를 실행한 cd <the directory your files are in>다음 이 스크립트를 실행하세요.
  • 이 스크립트는 모든 파일을 이동 /home/user하고 그에 따라 이름을 변경합니다.
  • spaces 파일명 에 문제가 없다면
  • 또한 오류 메시지나 예상치 못한 결과가 발생하지 않도록 디렉터리가 아닌 파일만 이동되도록 보장합니다.

관련 정보