파이프 사용법에 관한 질문입니다^^ (그리고 몇가지 ㅡ.ㅡ)

lacovnk의 이미지

검색을 해도 도무지 찾을수가 없더군요 ㅠㅠ

find . -name "*.php"

하면 확장자가 php인 화일이 쭈욱~나오는데

이 파일들을 모두 755 권한을 주려고 하거든요

그래서 그냥 생각에

find. -name "*.php" | chmod 755

해줬더니, chmod 명령어에서 인자가 모자라서 안되더군요 음음

rm 명령어 같은거는 그냥 넘겨도 되는 것 같던데 음음 ㅡ.ㅡ

파이프 이후 명령어의 특정부분에 이전 명령어의 결과..가 들어가게 지정할수 없나요?

둘째! (질문하는 김에 ㅡ.ㅡ; 확인차 ㅠㅠ)

php는 755, html이나 image파일은 744주면 되겠지요?

lacovnk의 이미지

chmod -Rv 755 */*.php

근데 원래 질문같이 필요한 경우에는 어떻게 하지요? ㅠㅠ

송지석의 이미지

쉘 스크립트를 쓰시면 어떨까요?

find에서 리턴되는 결과의 한줄마다 chmod를 실행하면 되겠네요..

#!/bin/bash 
for i in $( find -name "*.php" ); do 
echo change mod item: $i 
chmod 755 $i
done 
dalgarak의 이미지

어떠한 출력 결과를 argument로 넘겨주고 싶을때에는
" ` " 글자를 사용하면 됩니다.

즉,
$ chmod 604 `find . -name *.php`
..와 같이 묶어주면 됩니다.

BASH 에서는 $() 로 묶어주는것도 가능하다고 알고 있습니다.
$ chmod 604 $(find . -name *.php)
..이와 같이 말이죠.

그리고 퍼미션은 php, image 파일 둘다 644 혹은 604를 주시면 됩니다.
여담으로, 웹 디렉토리는 701만 주셔도 되는것으로 알고 있습니다. :)
(파일 입출력이 필요한 디렉토리는 제외하고 말이죠..)

송지석의 이미지

실험해보니 제 글과 윗분 글 대로 해도 문제가 있네요.
파일 명에 빈칸이 있으면 다른 인자로 인식합니다.
줄단위로 읽어오게 해야 하는데.. 음..

lacovnk의 이미지

으음

디렉토리를 모두 701로 바꿔주려 하는데

으음...해보는데 잘 안되네요 ㅡㅡ;;

ㅠㅠ

아직 디렉토리를 어떻게 써야 할지 헷갈릴때가 많아요

예를 들면 a,b 모두 디렉토리라 할떼,

mv a b로 하면

a가 이름이 바뀌어 b로 옮겨지는지

아니면 b이하의 디렉토리로 a가 옮겨지는지도 헷갈리고요

(mv a b/ 라고 해야 하는건가? ㅡ.ㅡ..음음)

dalgarak의 이미지

Quote:
파일 명에 빈칸이 있으면 다른 인자로 인식합니다.
줄단위로 읽어오게 해야 하는데.. 음..

예전에 그 문제로 한참 고민하다가...
결국 다른 분들께 공백을 "_"문자로 올려달라는 헛짓-_-;;을 한적이 있습니다. :oops:

아침에 생각이 나서 지석님의 스크립트를 약간 고쳐 봤습니다.

#! /bin/sh
IFS=,
for i in `find . -name "*.php" -printf %p,`; do
        echo "change mod item: $i"
        chmod 755 $i
done

...제대로 잘 작동할련지는 모르겠습니다.
집에서 파일 2개를 만들어 놓고 테스트 할 때는 작동하더랍니다만..

다른 상황에서도 잘 적용될 수 있을까 확신이 안 서네요. 8) 일단 올려봅니다.

다즐링의 이미지

find . -name "*.php" | xargs chmod 755

------------------------------------------------------------------------------------------------
Life is in 다즐링

appkr의 이미지

find . -name "*.php" -exec chmod 755 {} \;

송지석의 이미지

LunA_Jh wrote:
Quote:
파일 명에 빈칸이 있으면 다른 인자로 인식합니다.
줄단위로 읽어오게 해야 하는데.. 음..

예전에 그 문제로 한참 고민하다가...
결국 다른 분들께 공백을 "_"문자로 올려달라는 헛짓-_-;;을 한적이 있습니다. :oops:

아침에 생각이 나서 지석님의 스크립트를 약간 고쳐 봤습니다.

#! /bin/sh
IFS=,
for i in `find . -name "*.php" -printf %p,`; do
        echo "change mod item: $i"
        chmod 755 $i
done

...제대로 잘 작동할련지는 모르겠습니다.
집에서 파일 2개를 만들어 놓고 테스트 할 때는 작동하더랍니다만..

다른 상황에서도 잘 적용될 수 있을까 확신이 안 서네요. 8) 일단 올려봅니다.


제가 해봤는데 IFS를 ,로 한 것은 괜찮은 생각 같습니다. 그런데 그렇게 하고 printf에 ,를 더하니 맨 마지막에도 ,가 추가 되기 때문에 마지막엔 $i에 null이 들어갑니다.
정태영의 이미지

lacovnk wrote:
으음

디렉토리를 모두 701로 바꿔주려 하는데
으음...해보는데 잘 안되네요 ㅡㅡ;;

find ./ -type d | xargs chmod 701

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.