방금 바보 같은 실수로 오디오 컬렉션의 작은 부분을 잃어 버렸습니다. :-(
글쎄, 나는 상당히 최근의 백업을 받았지만 여전히 짜증났다. 당신과는 별도로, 장난을 저지른 다른 범인 mv
은 다음과 같이 보일 것이다.
오디오 파일에는 특정 구성표가 있습니다.
ARTIST - Some Title YY.mp3
경우 YY
2 자리 연도 사양입니다.
mkdir 90<invisible control character>
(이 순간까지, 나는 실제로 보이지 않는 1/3 초과 문자를 입력했다는 것을 몰랐습니다 ...!)
모든 디렉토리를 하나의 디렉토리에 두는 대신 1990 년대의 모든 음악을 하나의 디렉토리에두기를 원했습니다. 그래서 나는 타이핑했다 :
find . -name '* 9?.mp3' -exec mv {} 90 \;
무슨 일이 있었는지 알기 힘들지 않습니까? ->
(비참한) 결과는 처녀 빈 디렉토리가 '90라는 뭔가 '(와 뭔가 은 "보이지 않는"제어 문자 인)과 하나 개의 파일 이라고' '(90)를 덮어 n 개의 시간을.
모든 파일이 사라졌습니다. :-(((분명히))
Wish mv
는 대상 "file"의 서명 (* NIX : Everything Is A File 기억 )이 (예 :)로 시작 하는지 여부를 제 시간에 확인 했습니다 . 그리고 물론 목적지 가 존재 하는지 여부 . 당신은 단순히 전술 시나리오의 변형이 잊고 에 먼저 디렉토리. (물론, 당신은 그것이 있다고 가정했습니다 ...)d------
drwxr-xr-x
mkdir
심지어 우리의 애완 동물 - 증오 OS는 자본으로 시작 W 않습니다 DO THIS. 원하는 경우 대상 유형 (파일? 디렉토리?)을 지정 하라는 메시지가 표시 됩니다.
따라서, 우리가 * NIXers가 mv
이러한 종류의 가장 원치 않는 놀라움을 피하기 위해 여전히 " 스크립틀릿" 을 작성해야하는지 궁금합니다 .
mv
기술적으로 문제가 아니며 일련의 파일을 이동하고 있다는 것을 모릅니다. mv
각 파일마다 한 번씩 실행 중입니다. 그것이 find -exec ;
작동 하는 방식입니다. 당신이 find -exec +
(일부 의견에서와 같이) 사용 mv
했다면, 하나 이상의 주장을하자마자 비명을 질렀을 것입니다.
mv
각 단일 파일에 대해 실행 하는 것이 처음에는 약간 덜 생각되는 것처럼 보일 수 있지만 소스 파일이 다양한 하위 디렉토리에 흩어져 있으면 (이전에 말했듯이) 유일한 해결책이 될 것입니다. 필자의 테스트 사례에서 소스 파일이 모두 하나의 디렉토리에 있다고해서 이것이 실제 테스트 사례 라는 의미는 아닙니다 . 나중에 간단하게 설명 할 수 있기 때문에 실제로는 단순화입니다. 또한 길이가 짧아 질문을 읽는 데 시간이 덜 걸립니다. :)
mv
대상이 존재해야하는 이유는 무엇 입니까? mv oldfile newfile
파일의 이름을 바꾸는 방법이며 newfile
이미 존재하며 디렉토리가 될 것으로 예상 되지 않습니다.
.mp3
는 name으로90
있어야하며 백업이없는 것일 수 있습니다.