2
이름에 밑줄이있는 모든 파일과 폴더의 이름을 바꾸고 밑줄을 하이픈으로 바꿉니다. 현재밑줄이있는 파일과 폴더의 이름을 모두 Linux에서 하이픈으로 바꾸는 방법
나는 다음과 같은 코드를 사용하고,
rename '_' '-' */*/*
이름에 밑줄이있는 모든 파일과 폴더의 이름을 바꾸고 밑줄을 하이픈으로 바꿉니다. 현재밑줄이있는 파일과 폴더의 이름을 모두 Linux에서 하이픈으로 바꾸는 방법
나는 다음과 같은 코드를 사용하고,
rename '_' '-' */*/*
당신이 시도 할 수 나에게 "너무 긴 인수 목록"을 보여주고있다 :
$ tree foo
foo
├── dir_1
│ └── foo_file_2
└── file_1
1 directory, 2 files
$ for ft in d f; do find foo -type $ft -execdir sh -c 'mv "$0" "${0//_/-}"' {} \; ; done 2>/dev/null
$ tree foo
foo
├── dir-1
│ └── foo-file-2
└── file-1
1 directory, 2 files
을
이렇게하면 모든 디렉토리의 이름을 바꾼 다음 모든 파일 (for
은 d f
의 루프를 넘김)을 m 하나의 반복에서 모두 이름을 바꿉니다.
명령이 너무 많은 파일 이름과 일치하기 때문에 이름의 확장이 길어지고 적어도 쉘 명령의 최대 크기보다 길어집니다. – alk
루프로 작업하려면 어떻게해야합니까? 나는 누군가가 나를 여기에서 도울 수 있기 때문에 매우 감사 할 것이다! –
awk 도구를 살펴볼 수 있습니다. 또는 find 명령을'-exec' 옵션과 함께 사용하십시오. – alk