등의 underscore.~1~
이름을 가진 여러 파일이 포함 된 디렉토리가 있습니다 .main.js.~1~
index.js.~1~
underscore
디렉토리와 그 안에 있는 파일의 이름을 원래 이름 등으로 바꾸는 방법은 무엇입니까 main.js
?index.js
답변1
(Bash에서) 가장 쉬운 방법은 디렉토리로 변경하고 다음과 같이 수행하는 것입니다.
for i in *.~1~; do mv $i ${i%.~1~}; done
위의 코드는 모든 파일을 반복 *.~1
하고 확장자(대상으로 지정) 없이 해당 파일로 이동합니다 ${i%.~1~}
. 쉘에 대한 텍스트 대체를 찾으십시오.
디렉터리로 비슷한 작업을 수행할 수 있지만 디렉터리가 하나만 있는 경우 수동으로 수행하는 것이 더 간단합니다.
mv underscore.~1~ underscore
답변2
mv
터미널에서는 단순히 명령을 사용하여 폴더와 파일을 이동할 수는 없나요 ?
예
$ find adir_.~1~/ -ls
10757186 4 drwxrwxr-x 2 saml saml 4096 Oct 14 23:54 adir_.~1~/
10370964 0 -rw-rw-r-- 1 saml saml 0 Oct 14 23:50 adir_.~1~/afile_.~1~
이제 디렉터리 + 파일을 이동합니다.
$ mv adir_.~1~/ adir
$ mv adir/afile_.~1~ adir/afile
그리고 확인하세요:
$ find adir/ -ls
10757186 4 drwxrwxr-x 2 saml saml 4096 Oct 15 00:01 adir/
10370964 0 -rw-rw-r-- 1 saml saml 0 Oct 14 23:50 adir/afile
답변3
모든 파일과 디렉토리의 이름을 한 번에 바꾸려면 다음을 사용할 수 있습니다.rename
최소한 Debian 기반 Linux 배포판에서는 이 명령이 perl
패키지에 포함되어 있습니다.
rename 's/\.~1~$//' */*.~1~ underscore.~1~
첫 번째 매개변수 rename
는 수행할 대체를 설명하는 Perl 정규 표현식입니다. 후속 매개변수는 작업할 파일의 이름입니다. 하나의 호출만 관리하려면 매개변수 경로 확장이 발생한 후 해당 디렉토리 내의 파일 경로가 변경되지 않도록 마지막 디렉토리를 지정하십시오.