특수 문자로 파일 및 폴더 이름 바꾸기

spcurtis81

이것으로 고군분투하고 인터넷 검색이 작동하는 솔루션을 제공하지 않는 것 같습니다.

이름이 ...

file å?? name.txt

예를 들어 문제를 피하기 위해 이름을 바꾸고 싶지만 방법을 해결하기 위해 고군분투하고 있습니다. 나는 사용 ' '을 시도했고 \각 특수 문자 전에 사용을 시도했지만 'file \å\?\? name \(2008\).txt'다음과 같은 오류가 발생합니다 ...

-bash: cd: file \å\?\? name \(2008\).txt : No such file or directory

이것이 부적절하게 사용 \되거나 대체 접근 방식이 필요합니까?

감사

멘돈

비 ASCII 문자는 문제가 아니며 쉘은 å완벽하게 처리 할 수 있습니다. 문제는 파일 이름이 실제로 å??. 경우는 있었다, rm 'å??'또는 rm å??일 것입니다.

당신은 그것의 가정 å??때문에 어떤이의 ls그 합리적인 가정이지만, 프로그램 및 ls다양한 것들을 보여줄 것이다 ?. 예를 들면 :

$ mkdir "file å"\?\?" name.txt" "file å"$'\n'$'\n'" name.txt" "file å"$'\t'$'\t'" name.txt" "file å"$'\r'$'\r'" name.txt" "file å"$'\b'$'\b'" name.txt" "file å"$'\v'$'\v'" name.txt"

$ ls -l
total 24K
drwxr-xr-x 2 terdon users 4.0K Nov  8 13:02 file å?? name.txt
drwxr-xr-x 2 terdon users 4.0K Nov  8 13:02 file å?? name.txt
drwxr-xr-x 2 terdon users 4.0K Nov  8 13:02 file å?? name.txt
drwxr-xr-x 2 terdon users 4.0K Nov  8 13:01 file å?? name.txt
drwxr-xr-x 2 terdon users 4.0K Nov  8 13:02 file å?? name.txt
drwxr-xr-x 2 terdon users 4.0K Nov  8 13:02 file å?? name.txt

위에서 볼 수 있듯이 줄 바꿈, 탭, 캐리지 리턴, 벨 및 세로 탭 (그 중에서도)은 모두로 표시됩니다 ?. 위에서 만든 파일 / 디렉토리의 첫 번째 파일 / 디렉토리 만 실제로 ?이름에 있습니다. 다음을 통해 확인할 수 있습니다 ls -b.

$ ls -lb
total 24
drwxr-xr-x 2 terdon users 4096 Nov  8 13:02 file\ å??\ name.txt
drwxr-xr-x 2 terdon users 4096 Nov  8 13:02 file\ å\b\b\ name.txt
drwxr-xr-x 2 terdon users 4096 Nov  8 13:02 file\ å\t\t\ name.txt
drwxr-xr-x 2 terdon users 4096 Nov  8 13:01 file\ å\n\n\ name.txt
drwxr-xr-x 2 terdon users 4096 Nov  8 13:02 file\ å\v\v\ name.txt
drwxr-xr-x 2 terdon users 4096 Nov  8 13:02 file\ å\r\r\ name.txt

따라서 실행 ls -b하여 올바른 파일 이름을 얻은 다음 ANSI C 인용사용 하여 이름을 바꿀 수 있습니다.

mv å$'\r'$'\r' newname

또는 glob을 사용하여 이름이 다음으로 시작하는 모든 파일 / 디렉토리를 일치시킬 수 있습니다 file å( 참고 : 하나만있는 경우에만 작동합니다).

mv "file å*" newname

또는 이름에 영숫자가 아닌 문자가 포함 된 모든 파일 / 디렉토리의 이름을 바꿉니다 (다시 말하지만 이러한 대소 문자가 하나 인 경우에만 유용함).

shopt -s extglob  ## turn on extended globbing
mv !(*([[:graph:]])) newname

이상한 !(*([[:graph:]]))것은 설명이 필요합니다. "not foo"와 일치 extglob하는 !(foo)사용할 수있는 확장 된 globbing을 활성화 합니다. [[:graph:]]문자 클래스는 따라서 부정 일치하는 인쇄 가능한 모든 문자 (개행 문자 등을하지 탭)과 일치하는 !(*([[:graph:]]))비 인쇄 문자 모든 파일 / dirnames 일치하는 것이다.

이러한 경우를 두 개 이상 처리해야하는 경우 루프를 사용하십시오. 다음과 같은 것 :

for dir in !(*([[:graph:]])); do 
     mv "$dir" "${dir//[^[:graph:]]/_}"; 
done

${dir//[^[:graph:]]/_}대체 모든 비 인쇄 문자와 디렉토리 이름입니다 _. 이 접근 방식의 문제점은 동일한 이름으로 끝나는 다른 소스 디렉토리를 가질 수 있다는 것입니다 (예 : foo\nfoo\t둘 다 foo_). 이것이 문제인 경우 카운터를 사용하여 이름을 변경하십시오.

a=0; for dir in !(*([[:graph:]])); do 
    ((a++)); 
     mv "$dir" "${dir//[^[:graph:]]/_}$a"
done

결과는 다음과 같습니다.

drwxr-xr-x 2 terdon users 4096 Nov  8 13:08 file_å___name.txt1
drwxr-xr-x 2 terdon users 4096 Nov  8 13:08 file_å___name.txt2
drwxr-xr-x 2 terdon users 4096 Nov  8 13:08 file_å___name.txt3
drwxr-xr-x 2 terdon users 4096 Nov  8 13:08 file_å??_name.txt4
drwxr-xr-x 2 terdon users 4096 Nov  8 13:08 file_å___name.txt5
drwxr-xr-x 2 terdon users 4096 Nov  8 13:08 file_å___name.txt6

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

특수 문자가 포함 된 폴더의 파일 이름 바꾸기

분류에서Dev

폴더, 하위 폴더 및 여러 파일에서 반복적으로 찾기 및 이름 바꾸기

분류에서Dev

폴더의 특정 파일 이름 바꾸기 : 첫 번째 숫자 만 변경

분류에서Dev

파일 및 폴더 이름 검색 및 바꾸기

분류에서Dev

폴더 이름을 기준으로 파일 이름 바꾸기

분류에서Dev

zip 파일 폴더 추출 및 이름 바꾸기

분류에서Dev

재귀 적 이름 바꾸기 파일 및 폴더

분류에서Dev

Android에서 연속 폴더 및 파일 이름 바꾸기

분류에서Dev

일괄. 폴더 및 모든 하위 폴더의 파일 이름 바꾸기

분류에서Dev

ZSH : 중첩 된 폴더의 파일 이름 바꾸기, 특정 문자 대문자

분류에서Dev

모든 폴더 및 파일 이름에서 문자열을 바꾸는 방법

분류에서Dev

홀수 문자로 폴더 이름 바꾸기

분류에서Dev

파일 이름의 명령 특수 문자 이름 바꾸기

분류에서Dev

파일 이름의 명령 특수 문자 이름 바꾸기

분류에서Dev

Linux에서 폴더의 폴더 이름으로 파일 이름 바꾸기

분류에서Dev

검색 및 바꾸기 작업을 수행 한 후 파일을 다른 폴더로 이동

분류에서Dev

폴더를 무시하고 반복적으로 파일 이름 찾기 및 바꾸기

분류에서Dev

찾기 및 이름 바꾸기를 사용하여 반복적으로 모든 파일과 폴더에 사용자 정의 문자열을 추가합니다.

분류에서Dev

R의 목록별로 폴더의 파일 이름 바꾸기

분류에서Dev

폴더의 파일 이름 바꾸기

분류에서Dev

Applescript-폴더 복제 후 내부 파일 이름 바꾸기 및 이름 바꾸기

분류에서Dev

특수 문자 파일 및 디렉토리 이름 바꾸기를위한 스크립트

분류에서Dev

경로에서 폴더 이름 찾기 및 바꾸기

분류에서Dev

전체 디렉토리 경로로 하위 폴더의 특정 파일 이름 바꾸기

분류에서Dev

Unix 폴더의 여러 파일 이름에서 여러 문자 바꾸기

분류에서Dev

폴더에서 특정 파일 이동 및 이름 변경 및 폴더별로 연속 이름 지정

분류에서Dev

PowerShell 4.0에서 파일 이름으로 폴더 이름 바꾸기

분류에서Dev

문자열 내용 자르기 및 파일 이름 바꾸기

분류에서Dev

짝수로 파일 이름 바꾸기

Related 관련 기사

  1. 1

    특수 문자가 포함 된 폴더의 파일 이름 바꾸기

  2. 2

    폴더, 하위 폴더 및 여러 파일에서 반복적으로 찾기 및 이름 바꾸기

  3. 3

    폴더의 특정 파일 이름 바꾸기 : 첫 번째 숫자 만 변경

  4. 4

    파일 및 폴더 이름 검색 및 바꾸기

  5. 5

    폴더 이름을 기준으로 파일 이름 바꾸기

  6. 6

    zip 파일 폴더 추출 및 이름 바꾸기

  7. 7

    재귀 적 이름 바꾸기 파일 및 폴더

  8. 8

    Android에서 연속 폴더 및 파일 이름 바꾸기

  9. 9

    일괄. 폴더 및 모든 하위 폴더의 파일 이름 바꾸기

  10. 10

    ZSH : 중첩 된 폴더의 파일 이름 바꾸기, 특정 문자 대문자

  11. 11

    모든 폴더 및 파일 이름에서 문자열을 바꾸는 방법

  12. 12

    홀수 문자로 폴더 이름 바꾸기

  13. 13

    파일 이름의 명령 특수 문자 이름 바꾸기

  14. 14

    파일 이름의 명령 특수 문자 이름 바꾸기

  15. 15

    Linux에서 폴더의 폴더 이름으로 파일 이름 바꾸기

  16. 16

    검색 및 바꾸기 작업을 수행 한 후 파일을 다른 폴더로 이동

  17. 17

    폴더를 무시하고 반복적으로 파일 이름 찾기 및 바꾸기

  18. 18

    찾기 및 이름 바꾸기를 사용하여 반복적으로 모든 파일과 폴더에 사용자 정의 문자열을 추가합니다.

  19. 19

    R의 목록별로 폴더의 파일 이름 바꾸기

  20. 20

    폴더의 파일 이름 바꾸기

  21. 21

    Applescript-폴더 복제 후 내부 파일 이름 바꾸기 및 이름 바꾸기

  22. 22

    특수 문자 파일 및 디렉토리 이름 바꾸기를위한 스크립트

  23. 23

    경로에서 폴더 이름 찾기 및 바꾸기

  24. 24

    전체 디렉토리 경로로 하위 폴더의 특정 파일 이름 바꾸기

  25. 25

    Unix 폴더의 여러 파일 이름에서 여러 문자 바꾸기

  26. 26

    폴더에서 특정 파일 이동 및 이름 변경 및 폴더별로 연속 이름 지정

  27. 27

    PowerShell 4.0에서 파일 이름으로 폴더 이름 바꾸기

  28. 28

    문자열 내용 자르기 및 파일 이름 바꾸기

  29. 29

    짝수로 파일 이름 바꾸기

뜨겁다태그

보관