40000개 넘는 파일 한꺼번에 삭제할 때 /bin/rm: 인수 명단이 너

bjwj의 이미지

<시스템 사양>

사용배포본 레드햇 9.0
CPU p4-2.4G
RAM 1G

손에 들고 있는 리눅스 안내서를 뒤적이는 것 외엔 전혀 문외한인 초보입니다.

제로보드 드림퀘스트 갤러리 게시판을 쓰다보니
data 폴더에 임시파일이 많이 생겨서 삭제하려는데 한꺼번에 삭제되지 않고 조금씩 나눠서(?) 삭제해야만 합니다.

ssh로 로긴하여 root 상태에서

[root #] rm -rf thumb_temp_*

라고 입력하면

-bash /bin/rm 인수 명단이 너무 김

이라고만 출력되지 삭제되지 않습니다.

임시파일 파일명은 한결같이 "thumb_temp_"로 시작되며 뒷부분은 "A"와"a" 부터 "Z"와"z"까지 이어집니다.

할수없이

[root #] rm -rf thumb_temp_A*

라고 입력해야 지워집니다.

이대로라면 제실력으로는

[root #] rm -rf thumb_temp_z*

까지 입력해야만 다 지워지겠죠.

게시물 수도 얼마되지 않는데 임시 파일 수는 대략 42000개가 넘는군요. 용량은 41Byte정도지만 신경거슬려서 싹 지우고 싶은데 현재로선 이걸 일일이 대소문자 입력해서 지워도 52번 명령해야 하네요...

참고로 시스템에 엑스윈도우는 설치하지 않았습니다. 오로지 콘솔에서만 작업해야합니다.

한꺼번에 지울 수 있는 방법, 꼭 알고 싶습니다.

larycho의 이미지

find . -name thumb_temp_\* -exec rm -f {} \;
라고 하시면 지우실수 있습니다.

bjwj의 이미지

삭제했습니다.

larycho 님

감사합니다. 초보에게 매우 유익했습니다.

솔직히 명령어 내용이 어찌된 영문인지는 앞으로도 오랫동안 모르겠습니다. ^^;

envia의 이미지

man find 하신 뒤에

-name 과

-exec 를 설명한 부분을 잘 보시면 될 것 같네요.

(사실 저도 방금 이해했어요. ^^; )

좋은 것 알아갑니다.

----

It is essential, if man is not to be compelled to have recourse, as a last resort, to rebellion against tyranny and oppression, that human rights should be protected by the rule of law.
[Universal Declaration of Human Rights]

yui의 이미지

bjwj wrote:
삭제했습니다.

larycho 님

감사합니다. 초보에게 매우 유익했습니다.

솔직히 명령어 내용이 어찌된 영문인지는 앞으로도 오랫동안 모르겠습니다. ^^;

find . -name "asdf*" -exec echo {} \;

라고 하면
-name 뒤에 해당하는 파일들을 . (현재 디렉토리)에서 찾아서
-exec 이후의 내용을 실행시킵니다. 이때 {}자리에 파일이름이 들어갑니다.

원래 질문하신 분처럼하면 인자 40000개짜리 rm을 한번 실행시키는 거고,
find명령으로 하면 인자 1개짜리 rm을 40000번 실행시킵니다.

다즐링의 이미지

ls thumb_temp_* | xargs -n100 rm -f

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

pynoos의 이미지

Unix 명령은 거의 프로그래밍 수준이지요.

ls /tmp/*

cd /tmp; ls

이 두가지는 상당히 다른 경로로 파일 검색이 일어납니다.

전자는 /tmp/* 를 shell 이 먼저 분석하여 * 에 해당하는 파일을 확장한뒤 ls 에 인자로 넘깁니다.

후자는 단지 ls가 현재 디렉토리를 열고 하나씩 스캔하지요.

따라서 shell이 * 에 대한 것을 분석하고 command line에 넘길 때, 그 용량이 shell이 넘길 수 있는 길이안에서만 가능합니다.

만약 bash, sh 를 쓰신다면,

set -f

하고 나서 실행하면, shell 이 * 에 대한 확장을 하지 않기 때문에 '*' 문자 그대로 전달되어 ls가 '*'라는 파일이 없다고 나옵니다.

set +f 로 풀어주시고... 확인해보셔요.

넘기는 파일 개수가 제한이 있는것이 아니라
길이기 때문에

ls /tmp/* 보다는

cd /tmp; ls *

가 훨씬 적은 량을 ls에 전달하게 되겠지요.

참고하세요....

windower의 이미지

이런 질문과 답글을 볼때마다
리눅스의 무한한 변용성(?)을 엿볼수 있다 생각합니다.

find와 rm , ls와 xargs를 결합해서
(pynoos님말씀처럼)내가 원하는 바를
프로그래밍 처럼 할 수 있다는 것에
감탄하지 않을 수 없습니다 ㅠ_ㅠ

Always

댓글 달기

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