bash 스크립트를 실행하여 하위 디렉터리의 파일에 .csv를 추가하고 컴퓨터에서 모든 파일을 이동/삭제합니다.

bash 스크립트를 실행하여 하위 디렉터리의 파일에 .csv를 추가하고 컴퓨터에서 모든 파일을 이동/삭제합니다.

100개의 하위 폴더가 있는 폴더가 있는데, 각 폴더에는 .csv를 추가하려는 두 개의 파일이 포함되어 있습니다. 나는 bash 스크립트를 작성했습니다:

#!/bin/bash

for i in * ; do     
    cd $i   
    for k in *; do      
        mv "$k" "${f%.*}.csv"
    done
    cd .. 
done

내 파일은 모두 어디로 갔나요? 어떻게 다시 받을 수 있나요?

답변1

mv "$k" "${f%.*}.csv"

변수가 정의되지 않았기 때문에 f전체 대체는 빈 문자열과 동일하지 않으며 명령은 가 됩니다 mv "$k" ".csv".

각 디렉토리에서 하나의 파일을 제외하고 모두 손실되었습니다. 마지막 이름은 이제 입니다 .csv. 시작 부분에 있는 점이 ls -a해당 파일을 보는 데 사용되는 파일을 숨기므로 눈치채지 못할 수도 있습니다. GUI 파일 관리자에는 일반적으로 숨겨진 파일을 표시하는 옵션도 있습니다.

관련 정보