파일을 재귀 적으로 터치하는 방법?


40

약 5000 파일의 타임 스탬프를 변경해야합니다.

입력 touch file1.txt하면 touch file2.txt영원히 나를 데려 갈 것입니다.

라인에 무언가를 할 수있는 방법이 touch -R *있습니까?


1
이것을 의미 touch file{1..3}.txt했습니까?
Avinash Raj

2
사용중인 쉘을 지정하지 않았지만 zsh를 사용하면 touch **/*편리합니다.
Marc Glisse

@Marc Glisse 인수 목록이 너무 길다는 것을 명심하십시오.
bac0n

bash에서는 touch **를 사용하기 전에 globstar를 설정해야합니다.
bac0n

답변:


71

find명령을 사용 하여 모든 파일을 찾고 다음을 사용 하여 찾은 모든 파일에서 실행할 touch수 있습니다-exec

find . -type f -exec touch {} +

텍스트 파일에 대해서만 결과를 필터링하려는 경우

find . -type f -name "*.txt" -exec touch {} +

16
내가 사용하는 것이 좋습니다 것 -exec'의 +종결 자 (대신을 \;). 이렇게하면 여러 인수를 각 touch인스턴스에 연결하고 (시스템 인수 제한까지) 훨씬 적게 포크 하고 아마도 더 빠릅니다.
Oli

1
@g_p ... 그리고 소스에 대해서는 '+'와 '\;'의 차이점
αғsнιη

2
그리고 건조 실행을 위해, 단지 생략 -exec touch {} +부분을, 그리고 그것이 무엇을 터미널로 인쇄 할 수 있습니다 것이 영향을 미쳤다.
Alex

5
감사합니다. 'find'에 첫 번째 매개 변수가 누락 된 것 같습니다. find . -type f -exec touch {} +
giltsl

수정 시간이 아닌 액세스 시간 만 변경하려면 어떻게합니까? "find -type f -exec touch -a {} +"여야합니까?
weeo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.