안녕하세요, MJ 입니다. 리눅스 파일복사 명령어 cp 에 대해 알아보겠습니다. 리눅스 cp 명령어는 윈도우 copy 명령어와 같은 기능을 합니다. 파일이나, 디렉토리를 복사 할 때 사용됩니다. cp 명령어의 도움말을 확인 해 보겠습니다. 펼치기/접기 Usage: cp [OPTION]... [-T] SOURCE DEST or: cp [OPTION]... SOURCE... DIRECTORY or: cp [OPTION]... -t DIRECTORY SOURCE... Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. Mandatory arguments to long options are mandatory for short options too. -a, --archive same as -dR --preserve=all --attributes-only don't copy the file data, just the attributes --backup[=CONTROL]...
안녕하세요, MJ 입니다.
날짜를 입력하여 요일을 확인하는 스크립트 입니다.
이전에 bash, batch, powershell 용 스크립트를 함께 포스팅 했었는데
bash 스크립트 목록을 작성한 기념으로 사용방법을 추가하여 다시 올려봅니다.
이전에 bash, batch, powershell 용 스크립트를 함께 포스팅 했었는데
bash 스크립트 목록을 작성한 기념으로 사용방법을 추가하여 다시 올려봅니다.
(사용방법)
1. bash 에서 파일을 만들고, 스크립트 내용을 붙여넣습니다.
[root]# vi /usr/local/bin/whatday
(소문자 i 를 한번 누른다)
아래 스크립트 내용을 "붙여넣기" 한다.
"ESC" 를 한번 누른다.
":wq" 를 입력하고 엔터를 치면, 파일이 저장되고 프롬프트로 나가진다.
아래 스크립트 내용을 "붙여넣기" 한다.
"ESC" 를 한번 누른다.
":wq" 를 입력하고 엔터를 치면, 파일이 저장되고 프롬프트로 나가진다.
2. 만든 파일에 CR 이 있지 않은지 확인한다.
[root]# file /usr/local/bin/whatday
>엔터를 쳤을 때, CR 이라는 문자가 포함된 로그가 확인된다면, 캐리지리턴 문자가 포함되어있는것으로 리눅스에서 스크립트를 정상실행시킬 수 없으므로 다음을 수행합니다.
>엔터를 쳤을 때, CR 이라는 문자가 포함된 로그가 확인된다면, 캐리지리턴 문자가 포함되어있는것으로 리눅스에서 스크립트를 정상실행시킬 수 없으므로 다음을 수행합니다.
[root]# dos2unix /usr/local/bin/whatday
> 이렇게 해서 캐리지리턴을 제거합니다.
dos2unix 명령어가 없는 경우 yum install dos2unix 를 수행하여 설치합니다.
> 이렇게 해서 캐리지리턴을 제거합니다.
dos2unix 명령어가 없는 경우 yum install dos2unix 를 수행하여 설치합니다.
3. 생성 한 파일에 실행 권한을 설정한다.
[root]# chmod 755 /usr/local/bin/whatday
4. 이제부터 whatday 명령어를 사용 할 수 있게 되었다.
"실행"[root]# whayday 2024-09-15
Sun
Sun
문의사항은 댓글을 달아 주시면 성심껏 답변 드리겠습니다.
감사합니다.
감사합니다.
[bash - 요일 확인]
#!/bin/bash
if [ ${#} -ne 1 ] && [ ${#} -ne 0 ];then
echo "Usage: ${0} yyyy-mm-dd"
exit 1
fi
if [ ${#} -eq 1 ];then
INPUT=${1}
elif [ ${#} -eq 0 ];then
echo -n "please input date (format: yyyy-mm-dd): "
read INPUT
fi
wrong_bit=0
tmp_y=$(expr substr $INPUT 1 4)
tmp_m=$(expr substr $INPUT 6 2)
tmp_d=$(expr substr $INPUT 9 2)
seq $tmp_y $tmp_y &> /dev/null
if [ $? -ne 0 ];then
wrong_bit=$(expr ${wrong_bit} + 4)
fi
seq $tmp_m $tmp_m &> /dev/null
if [ $? -ne 0 ];then
wrong_bit=$(expr ${wrong_bit} + 2)
fi
seq $tmp_d $tmp_d &> /dev/null
if [ $? -ne 0 ];then
wrong_bit=$(expr ${wrong_bit} + 1)
fi
if [ ${wrong_bit} -ne 0 ];then
if [ ${wrong_bit} -eq 7 ];then
echo 'Wrong Your Input Number of Year, Month, Day.'
elif [ ${wrong_bit} -eq 6 ];then
echo 'Wrong Your Input Number of Year, Month.'
elif [ ${wrong_bit} -eq 5 ];then
echo 'Wrong Your Input Number of Year, Day.'
elif [ ${wrong_bit} -eq 4 ];then
echo 'Wrong Your Input Number of Year.'
elif [ ${wrong_bit} -eq 3 ];then
echo 'Wrong Your Input Number of Month, Day.'
elif [ ${wrong_bit} -eq 2 ];then
echo 'Wrong Your Input Number of Month.'
elif [ ${wrong_bit} -eq 1 ];then
echo 'Wrong Your Input Number of Day.'
fi
exit 1
fi
getDay()
{
yy=$(expr substr $1 1 4)
mm=$(expr substr $1 6 2)
dd=$(expr substr $1 9 2)
if [ $mm = "01" ] || [ $mm = "02" ]; then
yy=$(expr $yy - 1)
mm=$(expr $mm + 12)
fi
yC=$(expr $yy / 100)
yY=$(expr $yy % 100)
# 제라의 요일 공식
num=$(echo $1 | awk '{ printf("%d", ((21*'$yC'/4)+(5*'$yY'/4)+(26*('$mm'+1)/10)+'$dd'-1) % 7); }')
case $num in
0) echo 'Sun' ;;
1) echo 'Mon' ;;
2) echo 'Tue' ;;
3) echo 'Wed' ;;
4) echo 'Thu' ;;
5) echo 'Fri' ;;
6) echo 'Sat' ;;
esac
}
getDay ${INPUT}
댓글
댓글 쓰기