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