Dev Blog

스크립트 & 소스코드 공유

실무에서 유용하게 쓰는 스크립트와 코드 조각을 블로그 게시판으로 저장하고 공유합니다.

108건의 글

리눅스 서버에서 폴더별 용량 확인 및 삭제 방법 (du, rm)

리눅스 서버에서 du 명령어로 폴더별 디스크 사용량을 확인하는 방법을 정리했다. du -sh로 각 폴더 요약 확인, 특정 경로의 하위 폴더별 용량, 재귀적 용량 표시, sort -hr로 큰 폴더 순 정렬을 설명하고, rm -rf로 폴더를 삭제할 때 되돌릴 수 없으므로 백업 후 신중하게 사용해야 한다는 주의사항을 강조한다.

리눅스 서버에서 폴더별 용량을 확인하려면 주로 du 명령어를 사용합니다. 예를 들어:

  1. 현재 디렉토리 내 각 폴더 용량 확인:
    du -sh */ 
  • du : 디스크 사용량(disk usage)을 표시하는 명령어
  • -s : 각각의 디렉토리에 대해 합계만 출력 (요약)
  • -h : 사람이 읽기 쉬운 형식(human-readable), KB/MB/GB 단위로 표시
  • */ : 현재 디렉토리 내 폴더들만 대상으로 함
  1. 특정 경로 내 폴더별 용량 확인:
    du -sh /path/to/directory/*/ 
  2. 하위 폴더까지 재귀적으로 모두 용량 표시:
    du -h /path/to/directory 
  3. 용량이 큰 폴더부터 정렬해서 보고 싶다면:
    du -sh /path/to/directory/* | sort -hr 
  • sort -hr : 숫자를 크기 순서로 역정렬(human-readable 숫자도 인식)

리눅스 서버에서 /www/css/images 폴더를 삭제하려면 rm 명령어를 사용합니다. 폴더(디렉토리)를 삭제하려면 -r 옵션(재귀적 삭제)과 -f 옵션(강제 삭제)을 함께 쓰는 것이 일반적입니다.

다음 명령어를 터미널에 입력하세요:

rm -rf /www/css/images 

설명:

  • rm : 파일/폴더 삭제 명령어
  • -r : 디렉토리 및 그 안의 모든 파일과 하위 디렉토리를 재귀적으로 삭제
  • -f : 강제로 삭제, 삭제 확인 메시지 없이 처리

주의:

  • 해당 폴더와 그 안의 모든 파일이 완전히 삭제되므로 매우 신중히 사용하세요.
  • 삭제 후에는 복구가 어렵습니다.
  • 필요하다면 삭제 전에 백업을 권장합니다.

삭제 권한 문제가 있으면 sudo를 붙여 관리자로 실행하세요:

sudo rm -rf /www/css/images 

CSS로 OL 목록 번호에 앞자리 0 붙이기 (counter + ::before)

ol 목록의 번호를 01, 02처럼 10 미만에서 앞자리 0을 붙여 표시하는 CSS 방법이다. 기본 번호를 숨기고, ol에 counter-reset으로 카운터를 초기화한 뒤 li의 ::before에서 counter-increment로 증가시키고 content: counter(목록, decimal-leading-zero)로 번호를 생성하는 3가지 구현 방식을 정리했다.

要实现 有序列表(<ol>)的序号小于 10 时前面补零(如 01, 02, ..., 09, 10, 11...),核心思路是:隐藏默认序号,用 CSS 伪元素 ::before 动态生成带前导零的序号

以下是 3 种主流实现方法,从简单到灵活,覆盖不同场景:

一、最推荐:纯 CSS counter + ::before(无需 JS,兼容性好)

利用 CSS 计数器 counter-reset/counter-increment 统计列表项数量,再通过 ::before 伪元素显示序号,配合 content 拼接前导零。

核心原理:

  1. counter-reset: list-counter 0:在 <ol> 上初始化计数器,起始值为 0(默认从 1 开始,这里显式设 0 更清晰)。
  2. counter-increment: list-counter 1:在每个 <li> 上递增计数器,每次 +1。
  3. content: counter(list-counter, decimal-leading-zero):用 decimal-leading-zero 格式显示计数器(自动为 1-9 补零)。

인터넷 canvas 이미지를 다운로드하는 방법 (toDataURL)

브라우저 개발자 도구를 이용해 페이지의 canvas 이미지를 저장하는 방법이다. Elements 패널에서 canvas를 찾아 "Store as Global Variable"로 저장한 뒤, 콘솔에서 canvas.toDataURL("image/png")로 이미지 데이터를 추출하고 a 태그의 download 속성으로 파일로 저장한다. cross-origin 이미지로 toDataURL()이 실패하는 경우의 대안도 설명한다.

  1. Elements 패널에서 <canvas> 태그를 찾고 오른쪽에서 스타일 또는 속성을 확인하세요.
  2. 우클릭 메뉴에서 “Store as Global Variable”을 선택합니다.
  3. 콘솔에서 위와 같은 방법(canvas.toDataURL())으로 이미지 데이터를 추출 후 저장 가능합니다.
  • canvas 내부에 이미지가 그려지는 방식에 따라 보안상 이유로 toDataURL()이 실패할 수 있습니다. (예: Cross-Origin 이미지가 캔버스에 포함된 경우)
  • 만약 toDataURL()이 반환되지 않거나 오류가 발생하면 이미지 소스 자체를 따로 다운로드해야 할 수 있습니다.

var canvas = $0; // $0는 마지막 선택된 요소를 가리킵니다.

var dataURL = canvas.toDataURL("image/png");

var a = document.createElement('a');

a.href = dataURL;

a.download = 'canvas-image.png'; // 저장될 파일명 지정

document.body.appendChild(a);

a.click();

document.body.removeChild(a);

canvas 요소 제대로 선택했는지 확인

  • var canvas = $0; 에서 $0이 실제 <canvas> 요소인지 확인하세요.
  • 콘솔에 console.log(canvas); 입력해 보고 canvas 요소 객체가 잘 나오는지 확인해보세요.

직접 data URL을 새 탭에 복사해서 열기

  • toDataURL()이 정상적으로 결과를 반환하면, dataURL 자체가 엄청 길 수도 있는데, 콘솔에 들어오는 문자열을 다 복사해서 새 탭 주소창에 붙여넣기 하면 이미지가 나옵니다.

CSS border-image로 이미지 테두리 만들기

CSS border-image 속성으로 이미지를 이용한 테두리를 만드는 CodePen 예제다. border-image-source에 이미지 URL을 지정하고 border-image-slice 값으로 9슬라이스 영역을 나누면, 이미지가 요소 테두리 전체에 자연스럽게 늘어나며 모서리와 변이 각각 다른 방식으로 표시된다.

See the Pen border-image by H J (@H-J-the-typescripter) on CodePen.



Let's create something great together.

프로젝트 문의 및 견적 요청은 언제든 환영합니다.