터미널에서 대시로 시작하는 단일 파일의 이름을 바꿀 수 있습니다.
mv ./-file file
대시로 시작하는 디렉토리의 모든 파일 이름을 바꿀 수도 있습니다.
for f in ./-*; do rename 's/-//' "$f"; done
그러나 이것을 재귀 적으로 어떻게 할 수 있습니까? find
명령, rename
명령 및 재귀 for
루프를 사용해 보았습니다 . 그런데 많은 파일 이름에 대시가 두 개 이상 있습니다. 첫 번째 대시 만 제거하고 싶습니다. 감사!
find
및 사용 rename
:
find . -iname '-*' -execdir rename -n 's:./-:./:' {} +
find . -iname '-*'
로 시작하는 모든 파일 이름과 일치하고 파일이 포함 된 디렉토리로 이동 한 후 해당 파일 이름을 인수로 사용하여 명령 -
을 -execdir ... {} +
실행 합니다. 즉, 명령 인수에는 항상 형식의 파일 이름이 있습니다. 그런 다음 정규식에서 뒤를 일치시키는 것이 쉽습니다 . cd
./-foo
-
./
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다