유닉스 < 에 대해 질문있습니다~

hjh3105의 이미지

유닉스를 최근에 배우고 있는 학생입니다.

< 에 대해 궁금한게 생겨서 이렇게 질문올립니다.

> 나 >> 에 대해서는 알겠는데 < 이거 왜쓰는지 모르겠습니다;;

예시는 cat < a.out 이런식으로 하는데 cat a.out 하고 다른게 없지 않나요???
다른상황에 어떻게 되는지 궁금해서 ls -al < a.out a.out 파일이 있을때만 출력이 되는데 ls -al 에 대한것만 출력하더라고요 ...

왜 쓰고 어떨때 쓰는지 궁금합니다ㅠㅠ

익명 사용자의 이미지

cat a.out은 "a.out"이라는 문자열을 프로그램의 Command-Line Argument로써 넘긴겁니다.
cat < a.out은 a.out이라는 파일의 내용을 프로그램의 stdin에다 써넣은 것입니다

MyAbby의 이미지

"mysqldump -u <유저> -p <덤프할 db>" > 파일.sql
"mysql -u <유저> -p " < 파일.sql

sql 덤프할 때 저런식으로 합니다. 덤프 프로그램이 기본적으로 db의 내용을 표준출력에다 해요.
덤프되었던 sql 파일을 다시 db에다 넣을 때, 프로그램 표준입력에다 넣어줍니다.

유닉스가 이런 리디렉션, 파이프 개념을 넣은 이유가 있습니다. 프로그램 코드를 변경하지 않고도 서로 데이터를 먹여줄 수 있죠.
"mysqldump | mysql" 이런 조합이면 DB 하나를 통째로 복사할 수 있습니다. 물론 이런 경우는 거의 없겠지만.

>> 를 사용하면 표준출력을 일종의 로그로 활용할 수 있고, &>>는 한술 더떠서 프로그램을 데몬으로 띄우고 필요할 때마다 tail 명령으로 프로그램이 내뱉는 표준출력을 파일로 볼 수 있죠.

개념 2개만 추가했는데, 프로그램이 그나마 독립적이고 참 만들기 편해집니다. 유닉스의 참 미덕이죠.

Sdsf3qUr의 이미지

ls는 표준 입력으로 부터 입력을 받지 않기 때문에 `ls -al < a.out`은 그냥 `ls -al`과 같습니다.

1. cat > file | command
2. command < file
3. command file #이렇게 사용하려면 command 명령어가 파일 이름을 인자로 받을 수 있도록 만들어져야 합니다.

결과적으로 세가지 경우가 차이는 없습니다. 저는 두번째 방식은 잘 안씁니다. 첫번째 방법에 익숙해져서 그런가 봅니다.

어떻게 동작하는지는 각각 다르기 때문에 결국 비용의 차이가 아닐까 합니다. 짐작이지만 이런 경우 1번의 비용이 가장 비싸 보입니다.

Sdsf3qUr의 이미지

영문 자료가 대부분이지만 'redirect vs pipe' 검색해 보시면 여러가지 예제들을 볼 수 있는 결과들이 많이 나옵니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.