파일
Posts
80 postsfile - 리눅스에서 파일 종류 식별하기
리눅스에 file이라는 명령어가 있어서 파일 종류를 식별할 수 있다. 파일명에 있는 확장자가 아니라 실제 파일 내용을 검사해서 그 종류를 판별해 준다. 아래의 예시를 보면 금방 감이 잡힐 것이다. file my_doc.pdf my_doc.pdf: PDF document, version 1.3 텍스트 파일의 경우 캐럭터 인코딩도 판별해 준다. file my_script.sh my_script.sh: ASCII text file my_data.txt my_data.txt: UTF-8 Unicode text 윈도우 실행 파일도 식별 가능. file setup.exe setup.exe: PE32 executable (GUI) Intel 80386, for MS Windows
[bash: sync] 계속 파일 구성이 변하는 디렉토리에 대한 작업에 대한 문제
확실치는 않은데, 어쨌든 일단 정리해 두기로. 일단 상황은 아래와 같다. ~/ftp_data 디렉토리에 파일을 받고 있다. 다른 장비에서 자동으로 보내준다. 그리고 1시간 간격으로 이 디렉토리에 있는 파일의 목록을 확인해서 조건에 맞는 파일은 다른 디렉토리로 옮겨야 한다. 별로 복잡하지 않은 문제라고 생각해서 아래와 같이 스크립트를 만들었다. mktemp 명령으로 /dev/shm 디렉토리에 임시 디렉토리를 만들고, find 명령으로 ~/ftp_data 디렉토리에 있는 파일 목록을 출력하여 임시 디렉토리에 파일로 저장. 이후 while 반복문으로 이 파일을 읽어서 하나씩 작업. (mktemp 관련 내용은 여기로, 파일의 내용을 한줄씩 while 반복문에 적용하는 방식에 대한 내용은 여기로) #
[bash: wc] 파일 내용이 몇개의 행으로 이루어졌는지 확인하기
예전부터 계속 활용해 오던 것인데, 생각난 김에 정리해 두기로. wc 명령으로 텍스트 파일이 총 몇줄인지(파일에 줄바꿈이 몇번 출현하는지) 확인해 볼 수 있다. -l 옵션을 사용하면 된다. 아래의 예시를 보자. # my_file.txt가 몇 줄인지 출력 wc -l my_file.txt 10 my_file.txt 만약 파일명을 출력하지 않고 싶다면 cat 명령과 조합하면 되겠다. # my_file.txt가 몇 줄인지 출력 cat my_file.txt | wc -l 10 개인적으로 가장 요긴하게 자주 쓰는 경우는 grep과 조합해서 특정 파일에서 특정 문자열을 포함한 행이 있는지 확인할 때다. # my_file.txt 내용중에 문자열 "abc"가 존재하는지 확인 grep
리눅스에서 pdf 파일 분할하기
얼마전에 좀 용량이 큰 pdf 파일을 여러개의 작은 pdf 파일로 분할해서 저장해야 하는 상황이 있었는데, 리눅스에서 깔끔하게 해결이 가능했다. 알고 보면 아무것도 아닌데, 그 당시에 당장 생각이 나지 않아서 고민을 좀 했었기에 여기에 적어 두기로. 우분투, 리눅스 민트 등 데스크탑 리눅스 배포판에 같이 들어 있는 문서 뷰어나 에디터에서 "인쇄" 메뉴로 가 보면 아주 요긴한 기능을 볼 수 있는데, 바로 "파일로 인쇄하기(print to file)"다. 파일 형식은 pdf, ps, svg 등을 지원한다. 분할하고 싶은 파일을 뷰어로 연 후에 인쇄 메뉴로 가서 인쇄할 페이지 범위와 파일명을 지정하고 pdf 파일로 저장하면 된다. 별도의 패키지를 설치할 필요도 없이 가뿐하게 해결되었다.



