일반적으로 나는 Rails 디렉토리의 루트에서 작업하며 파일을 이동하려고 할 때마다 동일한 경로를 두 번 탐색합니다.
mv app/views/layouts/application.html.erb app/views/layouts/application.html.haml
haml은 현재 있는 디렉터리를 수정하지 않고 디렉터리를 변경하지 않고 파일 이름을 변경해야 하는 가능한 예 중 하나일 뿐입니다. 이것을 달성할 수 있는 방법이 있나요?
답변1
사용버팀대 확장:
mv very/long/path/to/filename.{old,new}
으로 확장될 예정입니다.
mv very/long/path/to/filename.old very/long/path/to/filename.new
답변2
특정 디렉토리에서 작업 중인 경우 일시적으로 해당 디렉토리로 전환할 수 있습니다.
pushd app/views/layouts
mv application.html.erb application.html.haml
popd
Linux에서는 다음을 사용할 수 있습니다.rename
유틸리티( rename.ul
Debian, Ubuntu 및 그 파생 버전에서 호출됨)는 파일 이름의 일부(디렉토리 부분에 위치할 수 있음)를 변경하는 데 사용됩니다. in rename foo bar path/to/file
의 첫 번째 항목을 로 변경합니다 . 파일 이름에 첫 번째 문자열이 포함되어 있지 않으면 파일은 그대로 유지됩니다.foo
path/to/file
bar
rename .erb .haml app/views/layouts/application.html.erb
rename .erb .haml app/views/layouts/*.html.erb # do several in one go
rename .erb .haml app/views/layouts/application.* # never mind if application.js and application.html.gz also exist
공통 어간을 공유하는 명령줄에 여러 연속 단어가 있는 경우 중괄호 확장을 사용할 수 있습니다.
mv app/views/layouts/application.html.{erb,haml}
답변3
cd
서브셸의 디렉터리에서 이 작업을 수행할 수 있습니다 .
(cd app/views/layouts && mv application.html.erb application.html.haml)
여기서 대괄호는 새 쉘 프로세스에서 명령을 실행합니다 bash
.
답변4
다음과 같이 함수를 정의할 수 있습니다.
mv-rename () {
mv -- "${1}" "$(dirname -- "${1}")/${2}"
}
용법:
mv-rename app/views/layouts/application.html.erb application.html.haml