경로를 반복하지 않고 다른 디렉토리의 파일 이름 바꾸기 [중복]

경로를 반복하지 않고 다른 디렉토리의 파일 이름 바꾸기 [중복]

현재 작업 디렉터리 아래에 중첩된 여러 디렉터리의 파일을 약간 변경해야 하는 경우가 종종 있습니다. 파일이 하나뿐이고 와일드카드/스크립팅이 과도하기 때문에 수동으로 변경합니다.

blaz.txt예를 들어, ./foo/bar/blee에 있는 파일 이름을 다음과 같이 바꿔야 합니다 foobar.txt.

. 
|--foo
  |--bar
     | blee
       |-- blaz.txt

일반적으로 cd"단일 파일 찾기 blee및 실행 "을 통해 mv blaz.txt foobar.txt이 작업을 수행합니다 . 전체 경로를 입력할 수 있다는 것을 알고 있지만(작업 속도를 높이기 위해 편리한 탭 완성 기능 사용) 더 빠른 경로를 선호합니다.

더 좋은 방법이 있나요?

답변1

중괄호를 사용한 확장:

mv foo/bar/blee/{blaz,foobar}.txt

답변2

> touch tmp/foo/bar/baz
> rename baz boo tmp/foo/bar/baz
> ls -l tmp/foo/bar/
total 0
-rw-r--r-- 1 hl hauke 0 May 29 23:08 boo

답변3

서브쉘을 사용할 수 있습니다.

( cd foo/bar/blee ; mv blaz.txt boo.txt )

하지만 중괄호 예제에서는 +1해야 합니다. 이것은 훌륭합니다.

답변4

너무 지저분해지지 않으면 심볼릭 링크를 만들고 명령을 자체적으로 전달할 수 있어야 합니다.

심볼릭 링크 생성 지침:http://www.cyberciti.biz/faq/creating-soft-link-or-symbolic-link/

아래 댓글에서 업데이트: 시도해 볼 가치가 있습니다 ln -s /directory/thats/super/long/and/a/pita/ /etc/goats/.mv /etc/goats/foo.txt /etc/goats/bar.txt

관련 정보