UNIX 클러스터에서 touch

지금까지 외부 계정 (슈퍼컴퓨팅센터)의 scratch folder 파일들을 남기기 위해 다음과 같은 방식을 썼었습니다.(주:일정 시간 지나면 파일을 다 지웁니다.)

$ touch *
$ touch */*
$ touch */*/*
$ touch */*/*/*
$ touch */*/*/*/*
...

위 방법의 문제점은 (1) 폴더가 많아지면 일부 파일이 touch가 안 되고 (2) 무식하다는 겁니다.

그런데 찾아보니 이거 하나면 다 되는군요.[wikipedia]
$ find . | xargs touch

역시 무식하면 고생합니다.

핑백

  • UUUUU : find로 찾은 파일 tar로 묶기 2011-06-10 17:28:41 #

    ... 'KPOINTS' -o -name 'POTCAR' | xargs tar cvf backup.tar touch를 하고 싶으면 다음 문서를 참고하시기 바랍니다. [#] 참고한 문서들 [1] find 명령으로 찾은 파일을 tar 로 묶으려면? [#] [2] UNIX find 명령 [#] ... more

덧글

  • wolga 2010/12/21 15:29 #

    find로 touch하면 symbolic link에서 문제가 생긴다는 이야기를 들어서 테스트.

    echo 'Initial State' > result
    ls -l TOUCHFOLDER/test1/test >> result
    ls -l test >> result
    sleep 300

    touch test
    echo 'Touch Symbolic Link' >> result
    ls -l TOUCHFOLDER/test1/test >> result
    ls -l test >> result
    sleep 300

    find . | xargs touch
    echo 'Using Find' >> result
    ls -l TOUCHFOLDER/test1/test >> result
    ls -l test >> result

    이렇게 해보면 다음과 같이 나온다.

    Initial State
    -rw-r----- 1 ******* ****** 0 Dec 21 11:29 TOUCHFOLDER/test1/test
    lrwxrwxrwx 1 ******* ****** 22 Dec 21 11:14 test -> TOUCHFOLDER/test1/test
    Touch Symbolic Link
    -rw-r----- 1 ******* ****** 0 Dec 21 11:40 TOUCHFOLDER/test1/test
    lrwxrwxrwx 1 ******* ****** 22 Dec 21 11:14 test -> TOUCHFOLDER/test1/test
    Using Find
    -rw-r----- 1 ******* ****** 0 Dec 21 11:45 TOUCHFOLDER/test1/test
    lrwxrwxrwx 1 ******* ****** 22 Dec 21 11:14 test -> TOUCHFOLDER/test1/test

    따라서 scratch folder에 들어가서 $ find . | xargs touch 해주면 문제 없습니다.
    symbolic link로 home에서 scratch를 연결하고, home에서 find . | xargs touch하면 touch가 안 되므로 주의합시다.
※ 로그인 사용자만 덧글을 남길 수 있습니다.