이름을 기준으로 디렉터리를 찾아 새 디렉터리로 이동합니다.

이름을 기준으로 디렉터리를 찾아 새 디렉터리로 이동합니다.

"/example" 폴더에 포함된 "*_jony" 폴더를 모두 "/jony"라는 새 디렉터리로 이동하고 싶습니다. 여러 가지 방법을 시도했지만 성공하지 못했습니다! 도움을 받는 것이 좋을 것 같습니다. 감사해요!

답변1

mv path_to_example_dir/*_jony /jony

답변2

자주 수행해야 하는 작업인 경우 스크립트를 사용하여 수행하는 것이 유용할 수 있습니다. 다음은 작업을 수행하는 빠르게 조립된 Bash 스크립트입니다.

#!/bin/sh
dir_str=$1
src_dir=$2
dest_dir=$3
ret_code=0
if [ ! -e $src_dir ] ; then
    echo "Could not find source directory $src_dir."
    let "ret_code += 1"
fi
if [ ! -e $dest_dir ] ; then
    echo "Could not find destination directory $dest_dir. (Use mkdir to create.)"
    let "ret_code += 2"
fi
if [ $ret_code -eq 0 ] ; then
    for dir_to_move in $src_dir/*$dir_str ; do
        echo "For '$dir_to_move':"
        cmd="mv $dir_to_move $dest_dir"
        echo "Executing: $cmd"
        $cmd
    done
fi
exit $ret_code

선호하는 편집기를 사용하여 스크립트를 작성하십시오.

그다지 고급은 아니지만 이동하려는 디렉터리 이름과 원본 및 대상 디렉터리에 텍스트를 지정할 수 있으므로 어느 정도 유연성을 제공합니다. 스크립트가 포함된 파일의 이름을 "mv_dirs.sh"로 지정하고 이를 실행하여 명시된 목표를 달성하려면 다음과 같이 입력합니다.

sh mv_dirs.sh _jony/example/jony

이 기능을 실제로 구현하려면 일반 사용자에게는 일반적으로 없는 루트(/) 디렉터리에 대한 쓰기 권한이 필요합니다.

관련 정보