
확장자가 없는 수백만 개의 파일이 있고 이를 다른 폴더로 정렬하고 싶습니다. "파일"로 파일을 식별할 수 있지만 수동으로 처리할 수 있는 다양한 유형이 존재하게 됩니다. "파일"의 출력을 사용하여 "Word"를 grep한 다음 "office" 폴더로 이동하고 싶습니다. 단일 파일 형식에 대해 작성할 수 있지만 가지고 있는 모든 파일 형식에 대해서는 작성할 수 없습니다. 그렇다면 조건이 부족해요. 저는 시그윈을 사용하고 있습니다. 누구든지 이 작업을 수행하는 방법을 알려줄 수 있습니까? 감사합니다!
베드로
답변1
grep
대신 쉘 케이스 구성에서 간단한 패턴 일치를 사용할 수 있습니다. 예를 들어:
#!/bin/sh
for f in *; do
[ -f "$f" ] || continue
ftype="$(file -b -- "$f")"
case $ftype in
*"shell script"*)
echo mv -- "$f" scripts/
;;
*"C source"*|*"C++ source"*)
echo mv -- "$f" src/
;;
.
.
.
*) printf '%s: skipping unrecognized type "%s"\n' "$f" "$ftype" >&2
;;
esac
done
대상 디렉터리가 존재해야 합니다(단, 조건을 사용하여 생성하는 것은 간단합니다 mkdir -p
). echo
올바른 일을 하고 있다는 확신이 들면 es를 제거하세요.