2015-01-22 1 views
0

내 파일의 이름을 myscript.js에서 .myscript.js으로 변경하고 싶습니다. 어떻게하면 bash로 할 수 있을까요? mv myscript.js \.* 같은 다른 옵션을 시도했지만 작동하지 않습니다. 나는 - mv myscript.js m*과 같은 점이 아닌 기호를 추가하여 실험을 시도했지만, 이제는 내 파일이 어디에 있는지조차 알지 못합니다. (물론 사본이 있습니다.)첫 번째 기호 - 점을 추가하여 파일의 이름을 bash로 바꾸는 방법은 무엇입니까?

답변

3

너무 열심히 노력하고 있습니다.

rename 's/(.+\.js)/.$1/' *.js 

또는 순수 BASH에서 루프를 위해 이것을 사용합니다 :

mv myscript.js .myscript.js

1

당신은 그들 앞에 점을 배치하여 모든 *.js 파일의 이름을 rename 유틸리티를 사용할 수 있습니다

for i in *.js; do mv "$i" ".$i"; done 
2

중괄호 확장

mv {,.}myscript.js 
1

mv (또는 해당 내용은 cp)의 대상으로 패턴을 사용하지 마십시오. 명령은 여러분이 원하거나 기대하는 것을하지 않을 것입니다. Bash는 명령을 실행할 때 과 같은 파일 이름을 사용하여 명령을 실행 한 후 명령이 실행될 때 패턴을 확장합니다. 따라서 .*은 아무 것도 (파일이 존재하지 않으므로) 일치하지 않으며 m*m으로 시작하는 파일이나 폴더와 일치합니다. 오류가 발생하지 않았으므로 마지막 경기는 폴더 였을 가능성이 큽니다.

현재 명령의 이전 매개 변수에 액세스 할 수있는 방법이 없습니다. 당신이 너무 많이 입력 피하고 싶은 경우에, (그래서 당신은 mv myscript.js myscript.js으로 끝낼) 모두 파일 이름 을 사용하고 Ctrl 키 + 왼쪽Ctrl 키 + 마우스 오른쪽가 두 번째 인수의 시작 부분으로 빨리 이동하는 데 사용할 누락 된 코드 .을 삽입하십시오.

parameters of the previous command에 액세스 할 수 있습니다. 그러나 이것은 BASH의 기능이 아닙니다. 이는 readline의 기능입니다.