동일한 접미사(0에서 310까지)를 가진 파일과 디렉터리가 있습니다. file(0)
에 복사 directory(0)
하고 file(10)
까지 directory(10)
계속 file(310)
하고 싶습니다 directory(310)
.
한꺼번에 복사할 수 있는 방법은 없나요?
답변1
파일을 반복하여 해당 디렉토리로 이동합니다.
for FILE in *; do
if [[ -f "$FILE" ]]; then
echo mv "$FILE" "dir${FILE##file}";
fi
done
if [[ -f "$FILE" ]]; then
, 디렉토리가 아닌$FILE
파일인지 확인하십시오 .-f
-d
${FILE##file}
, (마지막 접두사까지 잘라내기)는file
파일 이름에서 접두사를 제거하고 숫자 부분만 유지합니다.echo
실제로 움직이기 전에 연습을 해야 합니다 .
예제 출력:
file0 --> dir0
file1 --> dir1
file2 --> dir2
file3 --> dir3
고쳐 쓰다:
파일 이름에 유사한 접미사가 있는 경우 file##.xyz
다음 스크립트를 사용할 수 있습니다.
for FILE in *; do
if [[ -f "$FILE" ]]; then
dname="${FILE##file}";
echo mv "$FILE" "dir${dname%.inp}";
fi
done
${dname%.inp}
코드의 이 부분(첫 번째 접미사로 잘라내기)은 이전에 접두사를 제거한 .inp
파일 이름 끝 부분을 제거 하므로 숫자 부분만 생성됩니다.${FILE##file}
file
또는 아래와 같이 사용할 수도 있습니다.
for FILE in *; do
if [[ -f "$FILE" ]]; then
echo mv "$FILE" "dir${FILE//[^0-9]/}";
fi
done