#!/bin/bash
# 파일명 검색받아서 디렉터리면 복사 X , 파일만 지정된 위치에 복사
echo -n "Input FileName : "
read file
echo -n "Copy to Directory : "
read dir
# 디렉터리가 존재하지 않는다면 생성하고 permission 755 부여
if [ ! -e "$dir" ]; then
mkdir "$dir"
chmod 755 "$dir"
fi
ROOT=/root
# 파일 존재 여부 및 디렉터리 여부 확인
if [ -f "$file" ]; then
# 파일이면 지정된 디렉터리로 복사
if cp "$file" "$ROOT/$dir"; then
echo "$file 파일이 $dir 디렉터리로 복사되었습니다."
else
echo "$file을(를) $dir 디렉터리로 복사하는 데 실패했습니다."
fi
elif [ -d "$file" ]; then
# 디렉터리인 경우
echo "'$file'은(는) 디렉터리입니다."
else
# 파일/디렉터리가 아닌 경우
echo "'$file' 파일이 존재하지 않습니다."
fi
--디렉터리 존재할 때 파일 copy
[root@localhost ~]# sh cp_file.sh
Input FileName : file2
Copy to Directory : dir1
file2 파일이 dir1 디렉터리로 복사되었습니다.
[root@localhost ~]# ls dir1
file2
--디렉터리 존재하지 않을때 파일 copy
[root@localhost ~]# ls dir2
ls: cannot access 'dir2': 그런 파일이나 디렉터리가 없습니다
[root@localhost ~]# sh cp_file.sh
Input FileName : file2
Copy to Directory : dir2
file2 파일이 dir2 디렉터리로 복사되었습니다.
[root@localhost ~]# ls dir2
file2
--파일이 아닌 디렉터리 입력
[root@localhost ~]# sh cp_file.sh
Input FileName : dir2
Copy to Directory : dir1
'dir2'은(는) 디렉터리입니다.
--복사할 file이 존재하지 않을경우
[root@localhost ~]# sh cp_file.sh
Input FileName : file
Copy to Directory : dir1
'file' 파일이 존재하지 않습니다.
--경로를 다르게 입력했을경우
[root@localhost ~]# sh cp_file.sh
Input FileName : file2
Copy to Directory : /home/dir1 #경로를 root directory가 아닌 home directory로 지정
cp: cannot create regular file '/root//home/dir1': 그런 파일이나 디렉터리가 없습니다
file2을(를) /home/dir1 디렉터리로 복사하는 데 실패했습니다.