디렉터리에 확장자가 .dat인 파일이 있는데 디렉터리에서 해당 파일을 삭제하지 않고 해당 파일을 모두 비우고 싶습니다.
나는 이렇게 달성하려고 노력했지만 효과가 없었습니다.
> *.dat
-bash: *.dat: ambiguous redirect
답변1
당신은 할 수 있습니다 :
:|tee -- *.dat
또는 zsh
(with multios
)와 동등한 것:
:>*.dat
하지만 모든 파일을 동시에 열기 때문에 파일 수가 많은 경우 최대 열린 파일 설명자 수에 대한 제한에 도달할 수 있습니다.
답변2
노력하다
for x in *.dat
do
> "$x"
done
이것은 기본적으로 모든 파일을 반복하여 수행합니다 >
.
답변3
시스템에 truncate
GNU coreutils의 유틸리티가 있으면 다음을 수행할 수 있습니다.
truncate -s 0 -c -- *.dat
-s 0
크기를 0으로 설정하는 반면, 일치 하는 항목이 없는 경우 -c
리터럴 이름을 가진 새 파일 생성을 방지합니다 . 이 경우 쉘이 확장되지 않은 파일을 반환합니다.*.dat
*.dat